Это совсем не стандартный способ. Это плохой путь.
То, как я использую большую часть времени, таково:
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(new FileOutputStream("file.dat"));
// use out
}
finally {
if (out != null) {
try {
out.close();
}
catch (IOException e) {
// nothing to do here except log the exception
}
}
}
Код в блоке finally можно поместить во вспомогательный метод, или вы можете использовать общий ввод / вывод для тихого закрытия потока, как отмечено в других ответах.
Поток всегда должен быть закрыт в блоке finally.
Обратите внимание, что JDK7 значительно упростит новый синтаксис, который автоматически закроет поток в конце блока try:
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("file.dat"))) {
// use out
}