我知道新的WatchDir功能,但我希望将FILE中的更改而不是Directory中的更改写入日志文件。对它所做的任何更改都直接写入log.txt文件。我当前的代码:http://pastebin.com/GwURfRbi,只将最后一行写入txt文件,因为它只读取一行。 我需要调整它以便读取一行,如果更改写入文件, 然后再次继续阅读,一旦做出任何更改,它立即写入txt文件。有人可以帮忙吗?
代码:
import java.io.*;
public class LogMonitor {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("D:/test.txt");
BufferedReader br = new BufferedReader(fr);
while (true) {
String line = br.readLine();
if (line == null) {
Thread.sleep(1*1000);
} else {
byte[] y = line.getBytes();
File g = new File("D:/abc.txt");
OutputStream f = new FileOutputStream(g);
f.write( y );
}
}
}
}
答案 0 :(得分:0)
我认为你的问题是你没有在OutputStream中将append boolean设置为true。试试这个:
OutputStream f = new FileOutputStream(g, true);
这样它就会附加行而不是覆盖整个文件。