使用ByteArrayDataSource下载multipart文件时出现内存不足错误

时间:2017-02-09 09:10:38

标签: java file multipart

我在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

Multipart响应包含2个不同的文件,一个是简单的文本文件,另一个是视频文件。

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

1 个答案:

答案 0 :(得分:0)

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