Edit: После повторного прочтения вопроса, я должен исправить мой ответ, потому что вопрос, по-видимому был о InputStream
от ссылочного ответа и не OutputStream
. InputStream
необходимо закрыть (см. Ответ от @Adi). Однако OutputStream
находится в заявлении try-with-resources, так что это тот, который вам не нужно закрывать.
Ответ, на который делается ссылка в вопросе, используется Java 7 try-with-resources Statement, который гарантирует, что ресурс будет закрыт в конце инструкции.
Оператор try-with-resources - это оператор try, который объявляет один или больше ресурсов. Ресурс - это объект, который должен быть закрыт после завершения . Оператор try-with-resources гарантирует, что каждый ресурс будет закрыт в конце инструкции.
Так что для OutputStream
, NO, в этом конкретном случае вам не нужно, чтобы закрыть OutputStream
себя, если вы используете примерочную с-ресурсом.
InputStream
однако должен быть закрыт.
Не нужно закрывать входные потоки как таковые, мы явно должны закрывать выходные потоки, вы можете закрыть его, если хотите, можете ли вы указать, с какой проблемой вы столкнулись? –
У меня нет проблем. У меня всегда есть проблемы, чтобы понять, когда и почему я должен закрывать потоки. Я видел код кода для преобразования InputStream в виртуальный файл без закрытия InputStream. Поэтому я подумал, что нужно, чтобы закрыть его. – ilopezluna
После повторного рассмотрения, я думаю, мы должны закрыть его, поскольку он будет содержать указатель/дескриптор нашего файла, смещение, до которого оно прочитало содержимое файла, и другую информацию относительно того же. Если мы закроем его, мы выпустим эффективную программу создания ресурсов. –