监视文件更改

时间:2011-08-01 12:39:05

标签: java multithreading

我正在尝试监控文件内容并向JTextArea添加任何新行。我创建了监视文件的线程,但当Scanner对象到达文件末尾时,它停止工作。我尝试了非常简单的方法,它创建了新的Scanner对象并从头开始读取文件,但这不是一个好的解决方案。 这是停止什么都不做的版本:

public class TextAreaThread implements Runnable {

JTextArea text = null;
File file = null;
Scanner read = null;

public TextAreaThread(JTextArea text, File file) {
    this.text = text;
    this.file = file;
    try{
        read = new Scanner(file);
    }catch(FileNotFoundException e){
        JOptionPane.showMessageDialog(null,"Wrong file or file doesn't exist","Error",JOptionPane.ERROR_MESSAGE);
    }

}

public void run() { 

    while(true){
        while(read.hasNext())
                text.append(read.nextLine()+"\n");
        try {
            wait(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}


}

1 个答案:

答案 0 :(得分:1)

wait方法不是您想要的。请改为Thread.sleep