JAVA压缩流(ZipOutputStream)的简单使用

ZipOutputStream压缩流

此流用于以 ZIP 文件格式写入文件,包括对压缩和未压缩条目的支持,也就是把文件打包成压缩文件,常用于附件下载(多文件下载),文件压缩存储。

类图:

JAVA压缩流(ZipOutputStream)的简单使用_第1张图片

常用的两个方法:

public void putNextEntry(ZipEntry e);
开始写入新的 ZIP 文件条目并将流定位到条目数据的开头。如果仍处于活动状态,则关闭当前条目。
这里的ZipEntry就是一个条目

public void closeEntry();
关闭当前 ZIP 条目并定位流以写入下一个条目
    
条目类:ZipEntry(表示 ZIP 文件条目)

通过例子了解ZipEntry:

如下:

new ZipEntry(name):这个name是什么,解压后的文件结构就是什么
我有一个文件是:‪D:\CaptureTest\filepath\1.jpg
name = "Image\01.jpg"
生成压缩文件后,再解压的文件结构就是"Image\01.jpg"

/**
 * 压缩指定路径的文件
 */
public static void fileToZip(String srcFile, String zipFile) throws IOException {
        File file = new File(srcFile);
        //取出文件名
        String name = file.getName();
        //读取文件
        FileInputStream inputStream = new FileInputStream(file);
        //输出流
        ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFile));
        //ZipEnter:表示压缩文件的条目(文件目录)
        zipOutputStream.putNextEntry(new ZipEntry("Image\\01.jpg"));

        int temp = 0;
        while ((temp = inputStream.read()) != -1) {
            zipOutputStream.write(temp);
        }
        zipOutputStream.close();
        inputStream.close();
    }

    public static void main(String[] args) {
        try {
            fileToZip("‪D:\CaptureTest\filepath\1.jpg", "D:\\CaptureTest\\123.zip");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

用解压软件打开123.zip:路径就是:\Image\01.jpg

JAVA压缩流(ZipOutputStream)的简单使用_第2张图片

其他

浏览器下载压缩文件例子:https://blog.csdn.net/liu_xin_xin/article/details/122988770

你可能感兴趣的:(Java,java,开发语言,后端)