Java,有没有一种方法可以使用servlet outputstream而不是覆盖来附加字节数组?
各位。我使用ApachePOI生成excel格式的文件,我没有将其存储在磁盘上,只存储了字节数组,然后我使用outputstream将字节数组写入客户端,以便客户端可以下载excel文件。大概是这样的:
OutputStream outputStream = response.getOutputStream();
byte[] fileData = generateDownloadFile(paramters);
outputStream.write(temp);
outputStream.flush();
然而,我想知道是否存在一种方法,我可以将字节数组附加到客户端,而不是只写一次,这样我就可以生成一些字节数组,然后刷新它们,然后生成一些字节数组并刷新它们,最后关闭连接。如果使用outputstream的write方法执行此操作,则后者将覆盖前者
为什么我需要这个?我只想在短时间内将一些内容发送回客户端,如果生成整个excel文件字节数组,然后将其刷新回,则连接可能已经关闭,并导致504错误
我试过:
- PrintWriter类中的append方法。但它不起作用,因为我需要发送字节而不是字符,所以通过PrintWriter时无法使用MSExcel打开文件李>
- 我还尝试使用socket。但是socket仍然需要使用outputstream,比如
new Socket().getOutputStream();
李> - 我还尝试使用socket。但是socket仍然需要使用outputstream,比如
我是Java方面的专家,甚至不熟悉。有人能帮我弄清楚吗? 谢谢
# 1 楼答案
Output有一种写入方法,可以添加带有偏移量的字节:
请检查这是否有效