如何使用Java同步写入文件?

时间:2019-01-08 14:29:25

标签: java file

我刚刚开始学习Java,并且对文件库感兴趣。因此,我打开了一个名为filename.txt的记事本文件。现在,我想使用Java写入文件,但是我想实时获得结果。

即,当执行Java代码时,更改应在文本文件中可见,而无需关闭并重新打开文件。

这是我的代码:

import java.io.*;
class Locker
{
    File check = new File("filename.txt");
    File rename = new File("filename.txt");
    public void checker()
    {
        try{
            FileWriter chk = new FileWriter("filename.txt");
            if(check.exists())
            {
                System.out.println("File Exists");
                chk.write("I have written Something in the file, hooray");
                chk.close();
            }
        }
            catch(Exception e)
            {
            }
        }

};
class start
{
    public static void main(String[] args) 
    {
        Locker l = new Locker();
        l.checker();
    }
}

有可能吗,如果可以,有人可以告诉我怎么做?

1 个答案:

答案 0 :(得分:11)

简单的答案:这不依赖于Java。

当FileWriter完成写入并被关闭时,文件系统中该文件的内容已更新。如果由于某种原因没有发生这种情况,则在运行该代码时应抛出某种形式的IOException。

用来查看文件的编辑器的问题是否认识到文件已更改……完全取决于您的编辑器。

某些编辑器将忽略更改,其他编辑器将告诉您“文件已更改,您要重新加载文件还是忽略更改”。

含义:您显示的代码确实“同步”地写入了该文件,而在“ java方面”则无所事事。

换句话说:尝试使用不同的编辑器,可能是用于源代码编辑的编辑器,例如atom,slickedit,visual studio等。