Struts2在获得结果后关闭“InputStream”吗?

时间:2011-12-02 10:38:21

标签: java struts2 fileinputstream auto-close

我在struts 2中有一个操作,它会打开FileInputStream,读取图像并在jsp中显示。

问题是,当struts完成获取图片时,它是否会自动处理FileInputStreamclose(),或者流保留open

2 个答案:

答案 0 :(得分:2)

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

相关代码位于org.apache.struts2.dispatcher.StreamResult:doExecute

答案 1 :(得分:1)

Struts2将在完成工作后关闭输入流。

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

Struts2 StreamResult Source Code

以下是相同的代码段:

 finally {

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

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