使用 BufferedReader 识别 txt 文件的结尾

Use BufferedReader to recognize the end of a txt file

我编写了使用 BufferedReader 和 read() 的代码,一次一个字符地访问和读取 txt 文件中的文本。预期的结果是从 txt 文件到控制台一次打印一个单词。我目前的困难是,一旦读完整个文件,当我只想读一次时,它似乎一遍又一遍地循环遍历 txt 文件。如何防止代码重复该过程?有没有我可以让 while 循环识别的值?

https://i.stack.imgur.com/ABPQT.png

BufferedReader.read() returns一个int,当你到达文件末尾时,它的值为-1。所以:

int read;
// Remove the reader.read() before the loop.
while ((read = reader.read()) >= 0) {
  char held = (char) read;

  // Rest of the loop.

  // Remove the reader.read() at the end of the loop.
}