【问题标题】:Write String to text-file in java [duplicate]在java中将字符串写入文本文件[重复]
【发布时间】:2015-12-18 12:07:55
【问题描述】:

想要将我从 JSON 解析为纯文本的一些信息保存到文件中,并且我还希望每次运行程序时都不会覆盖这些信息。假设它是一个简单的错误记录系统。

到目前为止,我尝试过这个:

FileWriter fileWriter = null;
File file = new File("/home/anderssinho/bitbucket/dblp-article-analyzer/logg.txt");

// if file doesn't exists, then create it
if (!file.exists()) {
    file.createNewFile();
}

...

String content = "------------------------------------";
fileWriter = new FileWriter(file);
fileWriter.write(content);
//fileWriter.write(obj.getString("title"));
//fileWriter.write(obj.getString("creators"));
//fileWriter.write(article.GetElectronicEdition());

但是当我这样做时,我似乎一直在覆盖信息,而且我也无法保存我想要从我拥有的 JSON 数组中获取的信息。

我该怎么做才能完成这项工作?

【问题讨论】:

  • 不要忘记刷新流。

标签: java json overwrite file-writing


【解决方案1】:

FileWriter fooWriter = new FileWriter(myFoo, false);

// true 追加
// false 覆盖; 其中 myFoo 是文件名

看到这个link

【讨论】:

    【解决方案2】:

    使用附加:

    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("logg.txt", true)));
    

    看到这个: How to append text to an existing file in Java

    【讨论】:

    • 这是否也会为我提供一个文件,还是我必须先创建它?
    • 全部包括在内。无需补充文件
    【解决方案3】:

    你能详细说明一下吗?如果问题只是无法追加,那么您只需向 FileWriter 添加一个参数,说明它是追加而不是从头开始写入。

    在这里检查构造函数:

    public FileWriter(String fileName, boolean append) throws IOException
    

    Official Java Documentation:

    在给定文件名的情况下构造一个 FileWriter 对象,该对象带有一个布尔值,指示是否附加写入的数据。

    参数:
    fileName - String em> 系统相关的文件名。
    append - boolean 如果为真,则数据将写入文件末尾而不是开头。

    抛出:
    IOException - 如果指定文件存在但为目录而非常规文件、不存在但无法创建或因任何其他原因无法打开
    p>

    【讨论】:

    • 英文第三人称代词是“you”,而不是“u”。
    • @ArtOfCode 不错,我在编辑时监督了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多