美文网首页
Java压缩 20M 文件从 30 秒到 1 秒的优化代码过程及

Java压缩 20M 文件从 30 秒到 1 秒的优化代码过程及

作者: 运气爆棚lsw | 来源:发表于2023-04-09 11:26 被阅读0次

压缩 20M 文件从 30 秒到 1 秒的优化过程

常见的需求场景:
1、前端传递多张图片,然后压缩成一个压缩包再传递出去
2、批量Excel表格导出数据,返回一下文件压缩包
等用于所有增加传递速度和减少网络开销的场景

最常见的文件压缩代码

public static void zipFileNoBuffer() {
    File zipFile = new File(ZIP_FILE);
    try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile))) {
        //开始时间
        long beginTime = System.currentTimeMillis();

        for (int i = 0; i < 10; i++) {
            try (InputStream input = new FileInputStream(JPG_FILE)) {
                zipOut.putNextEntry(new ZipEntry(FILE_NAME + i));
                int temp = 0;
                while ((temp = input.read()) != -1) {
                    zipOut.write(temp);
                }
            }
        }
        printInfo(beginTime);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这里找了一张 2M 大小的图片,并且循环十次进行测试。打印的结果如下,时间大概是 30 秒。

fileSize:20M
consum time:29599

第一次优化过程 - 从 30 秒到 2 秒

相关文章

网友评论

      本文标题:Java压缩 20M 文件从 30 秒到 1 秒的优化代码过程及

      本文链接:https://www.haomeiwen.com/subject/irkbddtx.html