Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 使用ByteArrayDataSource下载多部分文件时内存不足错误_Java_File_Multipart - Fatal编程技术网

Java 使用ByteArrayDataSource下载多部分文件时内存不足错误

Java 使用ByteArrayDataSource下载多部分文件时内存不足错误,java,file,multipart,Java,File,Multipart,在Java中下载多部分文件时,我面临内存不足的问题 我正在使用HttpUrlConnection下载第一行中的文件获取问题: ByteArrayDataSource ds = new ByteArrayDataSource(con.getInputStream(), "multipart/mixed"); //Line 1 MimeMultipart multipart = new MimeMultipart(ds); //L

Java
中下载多部分文件时,我面临内存不足的问题

我正在使用HttpUrlConnection下载第一行中的文件获取问题:

ByteArrayDataSource ds = new ByteArrayDataSource(con.getInputStream(),
                "multipart/mixed");           //Line 1
MimeMultipart multipart = new MimeMultipart(ds);          //Line 2
        javax.mail.BodyPart jsonPart = multipart.getBodyPart(1); //Line 3
        javax.mail.BodyPart videoPart = multipart.getBodyPart(2);  //Line 4
多部分响应包含两个不同的文件,一个是简单文本文件,一个是视频文件


整个多部分响应大小超过1 GB。

除非确保整个输入流较小,否则不应将其加载到字节数组中。可以通过将文件临时保存到本地文件系统来执行此操作。对于大文件,您需要找到替代解决方案。要么不允许,要么将其流式传输到支持流式传输的目标。i、 JMS队列。

哪一行抛出错误?您可能需要以增量方式处理流,而不是一次读取所有流。是否指定内存分配
Xmx
值?您可以参考:@shmosel ByteArrayDataSource ds=new ByteArrayDataSource(con.getInputStream(),“multipart/mixed”);这一行给出了错误。是的,我知道,但我没有得到正确的解决方案来读取流incrementally@PavanKumar是的,我已经指定了Xms内存分配,但它仍然会导致内存不足错误。@pash您可以指定
-Xmx2g
,这是更高的限制<代码>Xms可能不会在此处引起问题。