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()
手动。
我正在创建一个应用程序,它需要为每个用户编写一个文件(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()
手动。