ZipOutputStream
压缩流
此流用于以 ZIP 文件格式写入文件,包括对压缩和未压缩条目的支持,也就是把文件打包成压缩文件,常用于附件下载(多文件下载),文件压缩存储。
类图:
常用的两个方法:
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
其他
浏览器下载压缩文件例子:https://blog.csdn.net/liu_xin_xin/article/details/122988770