java - 如何在不使用 readLine() 的情况下检查 EOF?

标签 java

我有一个方法可以读取 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/

相关文章:

java - 从主类 jdeveloper 加载表单

java - Jframe帮助使用Boxlayout

java - 具有多个条件返回的嵌套 if 语句

java - 重新加载 Eclipse View

java - 将文本文件中的词频存储在 map 对象中

java - 从数组中删除维度

java - 仅使用 POJO bean 创建项目

Java - GC一个大字符串

java - 如何获取线程的堆栈跟踪

java - 有没有办法在代码中编写 Eclipse 文件搜索(Ctrl + H)?