Полагаю, проблема в том, что вы получаете пустой файл в конце работы приложения?
Вам следует упростить бит, который записывает код:
FileWriter fstream = new FileWriter("out.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write("blah" + output);
You 'открывать файл каждый раз и записывать его.Это нормально (лучше всего записать его в уже открытый поток), но вам не нужно создавать BufferedWriter
, и вы можете немного упростить код.
FileWriter fstream = new FileWriter("out.txt", true);
fstream.append(output);
Если вы запустите этот кодвы все равно обнаружите, что он не работает и просто создает пустой файл на диске.Важно закрыть после того, как вы его использовали.Изменение вышеупомянутого на:
FileWriter fstream = new FileWriter("out.txt", true);
fstream.append(output).append('\n');
fstream.close();
Кажется, чтобы программа работала (в коде есть несколько синтаксических ошибок, таких как забывание перехватить / выбросить проверенные исключения, но я предполагаю, что это только потому, что код былскопировано вручную).
Рекомендации по приведению этого в порядок подробнее:
- Запись в поток вместо открытия и закрытия файла каждый раз при записи элемента
- Используйте
finally
, чтобы гарантировать, что ваши файлы всегда закрыты, даже в случае исключения