首页 > 解决方案 > 如何使用java同步写入文件?

问题描述

我刚开始学习 Java,我对 File 库很感兴趣。所以我打开了一个记事本文件,名为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();
    }
}

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

标签: javafile

解决方案


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

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

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

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

含义:您显示的代码确实“同步”写入该文件,在“Java 方面”无事可做。

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


推荐阅读