我有以下写入文件的功能:
public void writeToFile(String data) throws IOException {
FileWriter fstream = null;
try {
fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write(data);
//Close the output stream
out.close();
} catch (IOException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fstream.close();
} catch (IOException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
每次调用它时它会创建一个新文件并写一个新行。我想要实现的是检查文件是否存在。如果没有创建新文件并写入内容(如果存在),则打开文件并添加新行而不删除现有文本。怎么做?
答案 0 :(得分:6)
将FileOutputStream构造函数调用更改为:
fstream = new FileWriter("out.txt", true);
答案 1 :(得分:2)
FileWriter为appends接受一个附加参数,指定是要创建新文件还是附加到现有文件
fstream = new FileWriter("out.txt", true);
答案 2 :(得分:0)
由于java的FileWriter类中有一个构造函数可以获取一个bool,如果下一个“条目”被附加到文件中,那么你应该使用
fstream = new FileWriter("out.txt");
到
fstream = new FileWriter("out.txt", true);
您可以在java文档中查找所有这些构造函数: http://download.oracle.com/javase/7/docs/api/java/io/FileWriter.html