compression - 将ZipOutputStream转换为ByteArrayInputStream

标签 compression zipoutputstream

我想使用InputStream压缩ZipOutputStream,然后从压缩的InputStream获取ZipOutputStream,而不将文件保存在光盘上。那可能吗?

最佳答案

我想到了:

public InputStream getCompressed(InputStream is) throws IOException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    ZipOutputStream zos = new ZipOutputStream(bos);
    zos.putNextEntry(new ZipEntry(""));

    int count;
    byte data[] = new byte[2048];
    BufferedInputStream entryStream = new BufferedInputStream(is, 2048);
    while ((count = entryStream.read(data, 0, 2048)) != -1) {
        zos.write( data, 0, count );
    }
    entryStream.close();

    zos.closeEntry();
    zos.close();

    return new ByteArrayInputStream(bos.toByteArray());
}

关于compression - 将ZipOutputStream转换为ByteArrayInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20221128/

相关文章:

Java.util.zip 替换单个 zip 文件

java - 缓冲后台 InputStream 实现

java - 从 ZipInputStream 读取到 ByteArrayOutputStream

java - apache commons 压缩的 Tar 问题

java - 线程 "main"java.util.zip.DataFormatException : incorrect header check 中的异常

java - 将文件转换为 xml,然后将其添加到 zip

Java 创建 100MB 压缩 csv 文件性能问题

java - 循环访问 3 个不同的 JDBC 结果集

java - 使用java将压缩数据推送到DynamoDB

powershell - 如何使用 Compress-Archive 压缩/归档隐藏文件?