gpt4 book ai didi

java - 在 Java 8 中,如何从 InputStream 转换为字节数组,并一路用 zip 压缩流?

转载 作者:行者123 更新时间:2023-12-01 07:01:10 24 4
gpt4 key购买 nike

换句话说,我有:

InputStream inputStream = getInputStreamFromSource();
byte[] output = zipOutputStreamAndConvertToByteArray(inputStream);

如何实现zipOutputStreamAndConvertToByteArray函数?

private byte[] zipOutputStreamAndConvertToByteArray(InputStream inputStream)
{
// what code goes here?
}

最佳答案

这将创建一个名为 file 的 zip 文件:

private static byte[] zipOutputStreamAndConvertToByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try (ZipOutputStream zip = new ZipOutputStream(outputStream)) {
zip.putNextEntry(new ZipEntry("file"));
try (InputStream in = inputStream) {
// this try block can be replaced with IOUtils.copy or ByteStreams.copy
byte[] buffer = new byte[4096];
int len;
while ((len = in.read(buffer)) > 0) {
zip.write(buffer, 0, len);
}
}
zip.closeEntry();
}

return outputStream.toByteArray();
}

关于java - 在 Java 8 中,如何从 InputStream 转换为字节数组,并一路用 zip 压缩流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49705678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com