如何从文件中获取新内容

时间:2015-12-13 13:12:08

标签: java

情景:

1.创建fromX.txt和to.txt文件(内容必须附加,将来自另一个逻辑) 2.如果是,请将其写入to.txt

,每隔一次从.xxt文件中检查新添加的内容

如何从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 个答案:

答案 0 :(得分:1)

你这样实现:

  1. 打开使用RandomAccessFile
  2. 寻找上次文件结尾的位置。 (如果这是第一次,请寻找文件的开头。)
  3. 阅读,直至到达新的文件结尾。
  4. 记录文件结尾的位置。
  5. 关闭RandomAccessFile
  6. 将位置记录为距文件开头的字节偏移量,并使用相同的值进行搜索。

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

    更新 - RandomAccessFile的javadoc为here。查找seekgetFilePointer方法。