Struts2,我使用下一个代码在服务器上创建文件,然后在用户计算机的硬盘上写入:
struts.xml
<action name="download" class="com.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="contentDisposition">attachment;filename="report.xxx"</param>
<param name="bufferSize">83886080(or more bigger)</param>
</result>
</action>
行动
public String execute() throws Exception {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
.... //code for writing to the buffer
fileInputStream = new ByteArrayInputStream(buffer.toByteArray());
return SUCCESS;
}
当“缓冲区”非常大时,会出现 java 堆大小的问题
只是我想要下一个:
- 在“缓冲区”中创建新的数据段
- 将此段写入 fileInputStream
- 缓冲区中为此段分配的空闲内存
- 重复步骤 1)、2) 和 3)
我怎样才能实现这样的算法?