Java从文件中读取字符时忽略EOF

Fen*_*rix 2 java

我尝试用char读取一个File char.不幸的是,Java在从文件中读取字符时会忽略EOF.

FileReader fileReader = new FileReader(fileText);
char c;
String word = "";
List<String> words = new ArrayList<String>();

while ((c = (char) fileReader.read()) != -1) {
    System.out.println(c);
    if (c != ' ') {
        word = word + c;
    }
    else {
        words.add(word + " ");
        word = "";
    }
}
Run Code Online (Sandbox Code Playgroud)

它应该在读取文件后分解,但它永远不会停止运行....

NPE*_*NPE 8

在Java中,char是无符号的,不能相等-1.你应该在进行演员表之前进行比较.

int ch;
while ((ch = fileReader.read()) != -1) {
    char c = (char)ch;
    System.out.println(c);
    ...
}
Run Code Online (Sandbox Code Playgroud)