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

Aka*_*ain 6 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

有可能,如果是这样,有人可以告诉我怎么样?

Gho*_*ica 11

简单回答:这不依赖于Java方面.

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

你用来查看文件的编辑器是否意识到文件已经改变的问题......完全取决于你的编辑器.

有些编辑会忽略这些更改,其他编辑会告诉你"文件已更改,是否要重新加载,或忽略更改".

含义:您显示的代码"同步"写入该文件,"Java方面的东西"无关.

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

  • 例如,Notepad ++会检测何时在磁盘上更改打开的文件,并要求重新加载.Linux有`tail`工具,可以连续显示文件的添加行. (5认同)