【发布时间】:2015-01-26 11:17:40
【问题描述】:
假设我正在从本地 String 变量构造一个 Java ByteArrayInputStream。例如,假设我有一个名为 csv 的大字符串,它表示 CSV 文件的内容,我需要将其放入输入流中,以便从该字符串中读取我的程序组件,而不是从一份文件。例如,
InputStream inputStream = new ByteArrayInputStream(csv.getBytes(StandardCharsets.UTF_8));
这个 inputStream 在我完成处理后是否需要关闭? 我知道关闭未使用的输入流通常是一个好习惯,通常是通过 try-resources 构造。我现在特别感兴趣的是在其方法返回时该变量超出范围之前选择不关闭此输入流的后果是什么。是否会因为我离开而导致内存泄漏一个流打开?还是因为流是在局部变量上打开而不是在文件资源上打开的?
【问题讨论】:
标签: java inputstream bytearrayinputstream