0

我需要检查是否没有写入随机访问文件中的位置。这样做的问题是,当该位置实际上还没有被写入时,我得到(如预期的那样)一个 EOFException。我一直在阅读 RandomAccessFile 文档以尝试解决此问题,并尝试在线研究。

我尝试过的事情:

  • 使用 try-catch 块并在每次出现 EOFException 时进行捕获(使用 try-catch 作为条件语句)。它有效,但这是一种可怕的做法,而且效率非常低,就我而言,大部分时间都是 EOF。

  • 使用 BufferReader 循环并检查位置。我最终遇到了很多问题,并决定必须有更好的方法。

我不想将一个文件复制到另一个文件或任何其他解决方法。我知道必须有一种直接的方法来做到这一点,我似乎无法找到正确的解决方案。

4

1 回答 1

0

你想写一个“tailer”吗?

您需要做的是有一个线程只读取使用 FileChannel.size() 来检查更多数据的数据。该数据被传递到管道输入。这允许您有第二个线程连续读取管道流,例如使用 BufferedReader 和需要更多数据的块。

于 2013-09-19T07:52:17.977 回答