찾다

 >  Q&A  >  본문

java - 关于BufferedReader中readLine读取最后一行的问题

public static void main(String[] args) throws Exception{

    BufferedReader in = new BufferedReader(new FileReader("Test3.txt"));
    String line =null;
    while((line=in.readLine())!=null)
    {
        System.out.println(line);
    }
}

想问一下通过readLine方法读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行,但是在最后一行的时候并没有换行或者回车的字符啊,此时为什么会读取到最后一行呢?按理说最后一行是不应该被读取到的。求解!

巴扎黑巴扎黑2803일 전2053

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 15:01:34

    BufferedReader에는 다음과 같이 스트림 끝에 도달했는지 여부를 확인하는 데 사용되는 전용 메서드가 있습니다.

    • @return 버퍼로 읽은 문자 수를 반환하거나, 소스 스트림의 끝에 도달한 경우 -1을 반환합니다.

    으아악

    readLine()에는 다음과 같은 단락이 있습니다.

    으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 15:01:34

    이에 대해서는 BufferedReader의 소스 코드를 보면 사실 또 다른 상황이 있습니다. 즉, 파일의 끝(즉, 마지막 줄)을 읽어도 이 줄이 반환됩니다. n과 r은 없습니다.

    으아악

    회신하다
    0
  • 취소회신하다