如何从文件中获取新内容

场景:

1.创建fromX.txt和to.txt文件(内容必须附加,并且将来自另一个逻辑)2。每隔一次从X.txt文件中检查是否有新添加,如果是,请将其写入to.txt

如何从X.txt文件中获取新的内容?

我已经尝试通过计算行数并查找其中的任何更改来实现它。

public static int countLines(String filename) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(filename)); try { byte[] c = new byte[1024]; int count = 0; int readChars = 0; boolean empty = true; while ((readChars = is.read(c)) != -1) { empty = false; for (int i = 0; i < readChars; ++i) { if (c[i] == '\n') { ++count; } } } return (count == 0 && !empty) ? 1 : count; } finally { is.close(); } } 

你这样实现它:

  1. 打开使用RandomAccessFile
  2. 寻找上次文件结尾的位置。 (如果这是第一次,请寻找文件的开头。)
  3. 阅读,直到您到达新的文件结尾。
  4. 记录文件结尾的位置。
  5. 关闭RandomAccessFile

将位置记录为距文件开头的字节偏移量,并使用相同的值进行搜索。

您可以修改上面的内容以重用RandomAccessFile对象,而不是每次都打开/关闭它。


更新RandomAccessFile的javadoc就在这里 。 寻找seekgetFilePointer方法。