Java FileWriter 未写入文件

Java FileWriter not writing to file

我正在创建一个应用程序,它需要为每个用户编写一个文件(JSON 格式)。

应用程序成功创建文件,但它是空的。在代码中我添加了一个更精细的输出来查看转换后的 JSON String 的样子,我注意到它是完整的(它包含所有内容,所以转换没问题)。但是该字符串不存在于文件中。

//create a new FileWriter C:/.../42.guser
        FileWriter writer = null;

        //for every User
        for(int i=0; i<users.size(); i++) {

            try {
                File f = new File(Users.usersDir.getPath()+"/"+i+".guser");

                //Create new file
                f.createNewFile();

                writer = new FileWriter(f);

                //convert to json and write to file. Here we get the object with KEY = keys[i].
                String stringedUsr = gson.toJson(users.get(keys[i]));

                logger.finer("Converted user: \""+stringedUsr+"\""); //Output seems ok

                //Write (NOT WORKING)
                writer.write(stringedUsr);

                logger.fine("Wrote updated user \""+keys[i]+"\" to file "+f.getCanonicalPath());

            } catch (IOException e) {
                FAILS++;
                e.printStackTrace();
            }

        }
        //End of for

我做错了什么?

注意:我已授予该应用所有必要的权限。没有AccessControlExceptions

首先考虑关闭你的作家。 关闭时,它应该首先 flush() 您的数据(如文档 here 中所述)

您也可以 flush() 手动。