Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个文件流式输出到zip文件中_Java_Angularjs - Fatal编程技术网

Java 将多个文件流式输出到zip文件中

Java 将多个文件流式输出到zip文件中,java,angularjs,Java,Angularjs,Hie,我正在使用solr、angularjs、Jax rs和java以csv格式生成报告。输入流已经包含csv响应,因为我们在查询solr时指定了wt=csv。从每个输入流创建的csv大小可能为300mb。java层的代码如下: enter code here InputStream is1; InputStream is2; // for is1 let file is csv1 // for is2 let file is csv2

Hie,我正在使用solr、angularjs、Jax rs和java以csv格式生成报告。输入流已经包含csv响应,因为我们在查询solr时指定了wt=csv。从每个输入流创建的csv大小可能为300mb。java层的代码如下:

enter code here
     InputStream is1;  
     InputStream is2;
     // for is1 let  file  is csv1
     // for is2  let file is  csv2
     // csvzip is the csv created form both two files 
     // now csvzip need to be downloaded through a popup
在内存中创建大文件和zipfile肯定不是一个好方法。
有什么方法可以解决这个问题吗?

您将如何创建一个zip?使用ZipOutputStream,对吗?ZipOutputStream包装输出流。写入输出流的内容通常不会保留在内存中。例如,如果您写入HTTP响应输出流,它将通过网络进入浏览器,这正是您想要的。@JBNizet是的,谢谢。但当我们从输入流创建csv时,我们可以在服务器上创建文件夹并在那里创建多个csv,然后我们可以访问所有csv和zip,并流那个些内容。或者你可以建议其他方法为什么你会这么做?只需从CSV输入流读取字节,然后将它们写入zip输出流。从CSV输入流读取、写入文件、打开文件、从文件输入流读取和写入zip输出流,您会获得什么?您只会使事情变得更复杂、更慢。@JBNizet没有什么事情是存在一个while循环,它将创建多个输入流。我的zip文件应该包含一个单独的csv文件,属于每个输入stream@JBNizet谢谢,我明白你的意思了。你怎么做拉链?使用ZipOutputStream,对吗?ZipOutputStream包装输出流。写入输出流的内容通常不会保留在内存中。例如,如果您写入HTTP响应输出流,它将通过网络进入浏览器,这正是您想要的。@JBNizet是的,谢谢。但当我们从输入流创建csv时,我们可以在服务器上创建文件夹并在那里创建多个csv,然后我们可以访问所有csv和zip,并流那个些内容。或者你可以建议其他方法为什么你会这么做?只需从CSV输入流读取字节,然后将它们写入zip输出流。从CSV输入流读取、写入文件、打开文件、从文件输入流读取和写入zip输出流,您会获得什么?您只会使事情变得更复杂、更慢。@JBNizet没有什么事情是存在一个while循环,它将创建多个输入流。我的zip文件应该包含一个单独的csv文件,属于每个输入stream@JBNizet谢谢,我明白你的意思了