阻止文件截断Java?

Tus*_*ani 1 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();
    }
Run Code Online (Sandbox Code Playgroud)

现在我每次尝试调用此方法时(这是代码在一个名为writeToFile的方法中,带有字符串参数)的字符串

Joa*_*uer 11

您需要使用以下两参数构造函数FileWriter:

fstream = new FileWriter("/Applications/AirDrop/contacts.txt", true);
Run Code Online (Sandbox Code Playgroud)

更好的是:根本不使用FileWriter,因为它总是使用平台默认编码,这通常不是一个好主意!相反,你应该明确指定使用哪种编码(如果你不知道还有什么选择,UTF-8通常是一个很好的默认值):

fstream = new OutputStreamWriter(new FileOutputStream("/Applications/AirDrop/contacts.txt", true), "UTF-8");
Run Code Online (Sandbox Code Playgroud)

另一个提示:这是很可能的是不断地打开和关闭文件是不是最好的主意:你平时应打开文件一次写,写你需要写它的一切,然后将其关闭.