我的应用程序通过 SMTP 服务器接收电子邮件。电子邮件中有一个或多个附件,电子邮件附件以 byte[] 形式返回(使用 sun javamail api)。
我试图即时压缩附件文件,而不先将它们写入磁盘。
实现这一结果的可能方法是什么?
您可以使用 Java 的 java.util.zip.ZipOutputStream 在内存中创建 zip 文件。例如:
public static byte[] zipBytes(String filename, byte[] input) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry entry = new ZipEntry(filename);
entry.setSize(input.length);
zos.putNextEntry(entry);
zos.write(input);
zos.closeEntry();
zos.close();
return baos.toByteArray();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)