需要一个Java程序,将对txt文件所做的所有更改写入log.txt文件

时间:2014-03-03 18:19:09

标签: java io

我知道新的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 );
            }
        } 
    } 
}

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你没有在OutputStream中将append boolean设置为true。试试这个:

OutputStream f = new FileOutputStream(g, true); 

这样它就会附加行而不是覆盖整个文件。