将字符串写入java中的文本文件

时间:2015-12-18 12:07:56

标签: java json overwrite file-writing

希望将我从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阵列中获取的信息。

我该怎样做才能使这项工作?

3 个答案:

答案 0 :(得分:3)

  

FileWriter fooWriter = new FileWriter(myFoo,false);

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

请参阅此link

答案 1 :(得分:2)

使用追加:

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

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

答案 2 :(得分:2)

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

检查构造函数:

public FileWriter(String fileName, boolean append) throws IOException

Official Java Documentation

  

构造一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。
  
  的参数:
   fileName - String 依赖于系统的文件名。
   append - boolean 如果为true,则数据将写入文件的末尾而不是开头。
  
  的抛出:
   IOException - 如果指定的文件存在但是是目录而不是常规文件,则不存在但无法创建,或者由于任何其他原因无法打开