Я создаю приложение, которое требует записи файла для каждого пользователя (в формате JSON).Java FileWriter, не записывающий в файл
Приложение успешно создает файл, но он пуст. В коде я добавил более тонкий вывод, чтобы увидеть, как выглядит преобразованная строка JSON, и я заметил, что она полная (она содержит все, поэтому преобразование в порядке). Но строка отсутствует в файле.
//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()' метод, также закройте автора по завершении – sidgate
Просто закрыть его должно быть хорошо. Это будет флеш. –
@AxelMontini Нет, потому что он не будет называть флеш или закрыт ;-) –