这是我的代码
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的方法中,带有字符串参数)字符串
答案 0 :(得分:11)
您需要使用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");
另一个提示:不断打开和关闭文件很可能不是最好的想法:你应该经常打开文件一次写入,写下你需要写的所有内容然后然后关闭它。