文件 IOstream 是否可以在每个循环中初始化?

FileOutputStream st = null;

for(file_path:file_list)
{
 st = new FileOutputStream(file_path);
.
.
.

}
st.close();

我想知道的是 如果我没有关闭一个流并使用新实例对其进行初始化,是否会影响程序性能?

如果是这样,是不是因为最后一行的 close() 只关闭最后创建的流,而其他以前的流正在等待 GC 自己清除?

提前感谢您的阅读。

lulu2008137 回答:文件 IOstream 是否可以在每个循环中初始化?

您正在遍历文件路径列表。您绝对应该为每个文件路径创建一个新的 FileOutputStream。您还应该关闭每个 OutputStream。我强烈建议您使用 try-with-Resources 而不是手动关闭(并用 BufferedOutputStream 包裹您的流)。喜欢,

for (String file_path : file_list) // I assume it's String(s)
{
    // Limit the stream visibility and program to OutputStream interface
    try (OutputStream st = new BufferedOutputStream(new FileOutputStream(file_path))) {
        // ...
    }
}
本文链接:https://www.f2er.com/19278.html

大家都在问