我在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
多部分响应包含 2 个不同的文件,一个是简单文本文件,一个是视频文件。
整个分段响应大小超过 1 GB。
除非确保输入流很小,否则不应将整个输入流加载到字节数组中。您可以通过将文件临时保存到本地文件系统来执行此操作。对于大文件,您需要找到替代解决方案。要么不允许,要么将其流式传输到支持流式传输的目标。即 JMS 队列。