我有一个方法可以读取 txt 文件中的下一行并执行某些操作。我有另一种方法也需要检查 EOF。这两个方法在循环内以接收方式调用。
方法一:
trace = br.readLine();
if (trace==null)
break; // end of file
方法2: 我需要在不使用相同技术的情况下检查 EOF。否则,它将增加用于 readLine 的 ptr...
有什么办法可以实现这一点吗?
谢谢
最佳答案
Is there any way to accomplish this?
BufferedReader API 不允许您执行此操作 (*)。如果您确实需要执行此操作,则需要实现自定义 Reader 类来执行此操作。我将从 PushbackReader
开始,添加一个 readLine()
方法,然后通过读取一个字符并将其推回来实现 eof 测试方法。
* 阅读 Can I peek on a BufferedReader? 的答案,看来 ready()
方法可以用作 EOF 测试。然而,这是标准代码库中 ready()
当前实现的产物,并且根据该方法的 javadoc 规范,可以说是错误的(错误)。
关于java - 如何在不使用 readLine() 的情况下检查 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471646/