В целом сразу понял что требуется сделать, но возник один вопрос при тестировании. 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?