在Java中:如何从byte []数组压缩文件?

我的应用程序正在通过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();

}

以上是 在Java中:如何从byte []数组压缩文件? 的全部内容, 来源链接: utcz.com/qa/427804.html

回到顶部