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