How to detect EOF in Java?

前端 未结 3 1289
予麋鹿
予麋鹿 2021-01-04 13:57

I\'ve tried some ways to detect EOF in my code, but it still not working. I\'ve tried using BufferedReader, Scanner, and using char u001a to flag the EOF, but still not make

3条回答
  •  独厮守ぢ
    2021-01-04 14:27

    It keeps running because it hasn't encountered EOF. At end of stream:

    1. read() returns -1.
    2. read(byte[]) returns -1.
    3. read(byte[], int, int) returns -1.
    4. readLine() returns null.
    5. readXXX() for any other X throws EOFException.
    6. Scanner.hasNextXXX() returns false for any X.
    7. Scanner.nextXXX() throws NoSuchElementException for any X.

    Unless you've encountered one of these, your program hasn't encountered end of stream. NB \u001a is a Ctrl/z. Not EOF. EOF is not a character value.

提交回复
热议问题