不断从文本文件中读取 - Java

时间:2015-07-29 17:05:01

标签: java file-io

我想从文本文件中读取,每当我在文本文件中添加一行并保存它时,java程序应该读取该特定行并打印它。到目前为止我有这样的事情:

FileReader fileReader = new FileReader(filename);
BufferedReader bufReader = new BufferedReader(fileReader);

while (true){

  if (bufReader.ready()){
       String line = bufReader.readLine();
       System.out.println(line);
       continue;
  }
  else {
       Thread.sleep(5000);
       continue;
  }
}

一旦程序运行,此代码 >不打印行,并更新文本文件并保存。我有办法实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

我想你可以从这段代码中得到一个想法:

BufferedReader br = new BufferedReader(fileReader);
String line;
while (true) {
    line = reader.readLine();
    if (line == null) {

        Thread.sleep(5000);//waiting till the new content
    }
    else {
       // Read the line
    }
}

答案 1 :(得分:0)

使用apache-commons-io而不是滚动自己的实现。它实现了" tail -f"你想要实现的功能。

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/input/Tailer.html