В целом сразу понял что требуется сделать, но возник один вопрос при тестировании.
1. Чтобы проверить как сохраняются мои данные в файл, я изменил создание временного файла на свой личный:
было:
File your_file_name = File.createTempFile("test", null);
OutputStream outputStream = new FileOutputStream(your_file_name);
стало:
OutputStream outputStream = new FileOutputStream("test.txt");
2. Далее в методе save написал реализацию сохранения через PrintWriter:
public void save(OutputStream outputStream) throws Exception {
PrintWriter writer = new PrintWriter(outputStream);
writer.println(name);
…..
3. Но при вызове в методе main, методов ivanov.save(outputStream); и outputStream.flush(); файл был пустым
Удалось решить проблему изменив атрибуты при создании объекта writer на:
PrintWriter writer = new PrintWriter(outputStream, true);
Дошел до этого посмотрев в исходниках конструкторы и увидев во 2м параметре autoFlush в одном из констуркторов.
Сделал интуитивно, только не пойму почему не отрабатывал изначальный код, ведь там метод flush вызывается отдельно после метода save?
Андрей
41 уровень
Почему не сохраняется информация в файл
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Андрей
2 июня 2020, 19:39
Не вызвал close:) Вопрос закрыт
0