1

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 堆大小的问题

只是我想要下一个:

  1. 在“缓冲区”中创建新的数据段
  2. 将此段写入 fileInputStream
  3. 缓冲区中为此段分配的空闲内存
  4. 重复步骤 1)、2) 和 3)

我怎样才能实现这样的算法?

4

0 回答 0