Для файлового потока, я думаю, я бы оставил поток открытым.Если вы всегда открываете и закрываете его, всегда существует вероятность, что открытие может завершиться неудачно, потому что кто-то открыл / заблокировал файл в редакторе с момента вашей последней записи в него.(Кроме того, системные вызовы для открытия и закрытия файла не приходят бесплатно ...)
Для случая JDBC вы не должны делать ни того, ни другого.Скорее вы должны использовать пул соединений JDBC, и пусть , что позаботится об открытии / закрытии соединения.(Одна из проблем, связанных с длительным зависанием соединения с базой данных, заключается в том, что база данных может его закрыть. В зависимости от вашего драйвера JDBC это может вызвать проблемы при попытке использовать закрытое соединение.)