Java 不要用支柱2关闭“开关”;“输入流”;在他们得到结果之后?
我在Java 不要用支柱2关闭“开关”;“输入流”;在他们得到结果之后?,java,struts2,fileinputstream,auto-close,Java,Struts2,Fileinputstream,Auto Close,我在struts2中有一个操作,它打开一个FileInputStream,读取一个图像并在jsp中显示它 问题是,当struts获取完图像后,它会自动处理FileInputStream和close()吗?还是流保持打开 结果将关闭输入流;所有操作所做的就是提供流。一旦操作返回,代码就不再控制输入流 相关代码位于org.apache.struts2.dispatcher.StreamResult:doExecutestruts2将在输入流为您完成工作后负责关闭输入流 这里是到源代码的链接,您可以很
struts2
中有一个操作,它打开一个FileInputStream
,读取一个图像并在jsp中显示它
问题是,当struts获取完图像后,它会自动处理
FileInputStream
和close()
吗?还是流保持打开 结果将关闭输入流;所有操作所做的就是提供流。一旦操作返回,代码就不再控制输入流
相关代码位于org.apache.struts2.dispatcher.StreamResult:doExecute
struts2将在输入流为您完成工作后负责关闭输入流
这里是到源代码的链接,您可以很好地看到,关闭流已经很小心了
以下是来自同一版本的代码片段:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
希望会让你清楚地知道事情是如何进行的