Struts2在获取结果后是否关闭“InputStream”?

3

我在struts 2中有一个操作,它打开一个FileInputStream,读取一张图片并在JSP中显示它。

问题在于,当struts完成获取图像后,它是否会自动处理FileInputStreamclose()它,或者流是留在open状态?

2个回答

2

该结果将关闭输入流;所有操作只是提供流。一旦操作返回,您的代码就不再控制输入流。

相关代码在org.apache.struts2.dispatcher.StreamResult:doExecute中。


1

Struts2会在完成工作后负责关闭输入流。

以下是源代码链接,您可以清楚地看到已经处理了关闭流的情况。

Struts2 StreamResult 源代码

以下是相同来源的代码片段:

 finally {

           if (inputStream != null) inputStream.close();
           if (oOutput != null) oOutput.close();
        }

希望能让您清楚地了解事情的进展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接