Java将两个缓冲流写入响应OutputStream

Java将两个缓冲流写入响应OutputStream,java,jasper-reports,outputstream,fileoutputstream,Java,Jasper Reports,Outputstream,Fileoutputstream,目前我正在使用Jasper Reports将大量数据导出到Excel文件。我正在尝试将数据集分割成块,创建jasper打印对象并导出到多个Excel文件 之后,我使用FileInput、BufferdInputStream读取文件,并复制到response.getOutputstream。像这样,我需要读取每个文件,并应复制到response.getOutputstream 但最后,当导出的文件被破坏,数据不可读并且不知道它是什么格式时 任何使用Jasper Reports导出海量数据的可行解决

目前我正在使用Jasper Reports将大量数据导出到Excel文件。我正在尝试将数据集分割成块,创建jasper打印对象并导出到多个Excel文件

之后,我使用FileInput、BufferdInputStream读取文件,并复制到
response.getOutputstream
。像这样,我需要读取每个文件,并应复制到
response.getOutputstream

但最后,当导出的文件被破坏,数据不可读并且不知道它是什么格式时

任何使用Jasper Reports导出海量数据的可行解决方案都值得赞赏

while ((readBytes = buf1.read(buffer)) != -1) {
                servletOutputStream.write(buffer, 0, readBytes);
                servletOutputStream.flush();
            }
上面的代码在循环中重复,通过替换从每个文件读取数据
buf1,新数据。

是否将两个流写入同一个OutputStream?每次写入时不需要
.flush()
,只需在
while
循环后刷新即可。是否确定拆分没有问题?您是否尝试从其所有输入重构文件并查看其是否仍然有效?是否在循环中执行
buf1.close()
buf1=new…InputStream…
操作?是的,请确保在分割数据时没有问题。是的,我在循环中执行buf1.close()和buf1=newInputStream。。。但我仍然在excel中获得相同的未匹配内容。