使用 ByteArray数据源下载多部分文件时出现内存不足错误



我在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 队列。

最新更新