阻止文件截断Java?

时间:2011-09-05 07:09:55

标签: java file

这是我的代码

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的方法中,带有字符串参数)字符串

1 个答案:

答案 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");

另一个提示:不断打开和关闭文件很可能不是最好的想法:你应该经常打开文件一次写入,写下你需要写的所有内容然后然后关闭它。