Допустим, я создаю Java ByteArrayInputStream
из локальной переменной String. Например, предположим, что у меня есть большая строка с именем csv
, представляющая содержимое CSV-файла, и мне нужно поместить ее во входной поток, чтобы компонент моей программы читал из этой строки, а не из файла. . Например,
InputStream inputStream = new ByteArrayInputStream(csv.getBytes(StandardCharsets.UTF_8));
Нужно ли закрывать этот inputStream после того, как я закончу с ним обработку? Я знаю, что обычно рекомендуется закрывать неиспользуемые потоки ввода, часто с помощью конструкции try-resources. Что меня особенно интересует прямо сейчас, так это каковы будут последствия решения не закрывать этот входной поток до того, как эта переменная выйдет из области видимости, когда ее метод вернется. Будет ли утечка памяти из-за того, что я оставил поток открыт? Или это не имело бы значения, потому что поток был открыт в локальной переменной, а не в ресурсе File?