这是我的代码
try {
fstream = new FileWriter("/Applications/AirDrop/contacts.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write(stringToInsert);
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
现在每次我尝试调用这个方法时(这是代码在一个名为 writeToFile 的方法中,带有一个字符串参数)
最佳答案
您需要使用 two-argument constructor of FileWriter
:
fstream = new FileWriter("/Applications/AirDrop/contacts.txt", true);
更好的是:根本不要使用 FileWriter
,因为它总是使用平台默认编码,这通常不是一个好主意!相反,您应该明确指定要使用的编码(UTF-8 通常是一个很好的默认值,如果您不知道还可以选择什么):
fstream = new OutputStreamWriter(new FileOutputStream("/Applications/AirDrop/contacts.txt", true), "UTF-8");
另一个提示:经常打开和关闭文件很可能不是最好的主意:您通常应该打开文件一次进行写入,写入所有需要写入的内容,然后然后关闭它。
关于java - 阻止文件截断 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7304828/