2011-05-01 4 views
1

텍스트 파일에서 읽을 필요가있는 Symbian S60 전화 용 J2ME 응용 프로그램을 만들고 있습니다. 파일에서 텍스트 줄을 추출하기 위해 BufferedReader에 액세스 할 수 없지만 Nokia 도움말 포럼에서이 파일을 찾았습니다. 약간 혼란 스럽습니다. 여기에 코드가 있으며 내 질문은 아래에 있습니다. 대답 해줘서 고마워.J2ME 읽기 파일과 혼동. 제발 이해 도와주세요

제 질문은 readLine() 메소드에 관한 것입니다. while() 루프에서 왜 readChar! = -1 및! = '\ n'인지 확인해야합니까? -1은 스트림의 끝 (EOF)을 나타냅니다. 나는 한 줄을 추출 할 때 줄 바꿈 문자 만 확인해야한다는 것을 이해했다.

감사합니다.

답변

1

코드 설명서를주의 깊게 읽으십시오. 모든 의심은 그것에 잘 대답합니다.

이 함수는 줄 바꿈 문자가없는 스트림을 처리하기 때문에 '-1'을 검사합니다. 이 경우 전체 스트림을 문자열로 반환합니다.

0

이것은 당신이하고자하는 일에 논리를 적용하는 방법과 같습니다. 예를 들어 위의 예 단지 확인 보호 -1 확인 readChar 그의


private String readLine(InputStreamReader reader) throws IOException { 
     // Test whether the end of file has been reached. If so, return null. 
     int readChar = reader.read(); 
     if (readChar == -1) { 
      return null; 
     }else{ 
      StringBuffer string = new StringBuffer(""); 

      // Read until end of file or new line 
      while (readChar != '\n') { 
       // Append the read character to the string. Some operating systems 
       // such as Microsoft Windows prepend newline character ('\n') with 
       // carriage return ('\r'). This is part of the newline character 
       // and therefore an exception that should not be appended to the 
       // string. 
       string.append((char)readChar); 

       // Read the next character 
       readChar = reader.read(); 
      } 
      return string.toString(); 
     } 
    } 

그래서 이전 코드 샘플과 같이 기록되어 있었다.

관련 문제