【问题标题】:How to write to file synchronously using java?如何使用java同步写入文件?
【发布时间】:2019-01-08 14:29:25
【问题描述】:

我刚开始学习 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();
    }
}

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

【问题讨论】:

标签: java file


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 例如 Notepad++ 检测到打开的文件何时在磁盘上发生更改,并要求重新加载。 Linux 有tail 工具,可以连续显示文件中添加的行。
猜你喜欢
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多