Страницы

Поиск по вопросам

среда, 17 июля 2019 г.

Запись объекта в файл. Правильное закрытие потоков

Делаю так:
try(ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("path"))) { oos.writeObject(myObject); } catch (IOException e) { e.getMessage(); }
Использую конструкцию try-with-resources, которая как бы автоматически вызывает метод close();
Вопрос0: Можно ли так делать или лучше обычный блок try, в котором писать flush() и close() или ещё как вариант писать close() в блоке finally()?
Вопрос1: Если инициализировать потоки отдельно, как правильно закрывать их по отдельности?
Вопрос2: Для десериализации объекта такая конструкция (try-with-resources) тоже допустима?


Ответ

1) так делать можно. Для этого try с ресурсами и создавался, чтобы писать меньше.
2) если вы про пример кода из вопроса, то это у вас всё равно один поток. А если вы действительно хотите открыть несколько потоков, то можно это делать через символ ; в скобках try. Система сама их закроет настолько насколько это возможно.
3) уточните что именно вы хотите сделать. Я доотвечу.

Комментариев нет:

Отправить комментарий