2014-03-07 5 views
1

다음과 같은 문자열이 있습니다. b\na\n a \n a\n\ta\n 6 줄이 있어야하지만 다음 코드는 마지막 빈 줄을 건너 뜁니다.BufferedReader에 후행 줄 바꿈이없는 것 같습니다.

br = new BufferedReader(new FileReader(file)); 
String line; 
while ((line = br.readLine()) != null) { 
    System.err.println("b4 line: " + line); 
} 

스캐너를 사용하는 것이 작동하지만, bufferedReader의 문제점은 무엇입니까? 마지막 \n 후 5 회 \n 아무것도를 가지고

while ((line = br.readLine()) != null) { 
    System.err.println("b4 line: " + line); 
} 
+0

아래의 3 가지 대답은 모두 ** 틀림 **입니다. BufferedReader가 두 가지 사례를 동일하게 취급하기 때문에 문제가됩니다. https://stackoverflow.com/questions/9922859/bufferedreader-readline-issue-detecting-end-of-file-and-empty-return-lines – Andrew

답변

0

5 개 라인이 있습니다.

아무 잘못도 없습니다.

0

5 줄입니다. 문자열은 \ n으로 끝나며 마지막 줄이됩니다. 마지막 행 다음에 데이터가 없습니다.

0

readLine()<line_content>\n을 찾아 <line_content>을 반환합니다. 당신의 예에서이 외모를 세면, 5 줄만 돌려 주어야한다는 것을 깨달을 것입니다.

+1

필요하다면 그것을 고려해 볼 수 있습니까? –

+0

찾을 수있는 행을 나열 할 수 있습니까? –

+0

"b", "a", "a", "\ ta", "" –

관련 문제