package server;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Zipuu {
public String zip;
public Map<String, String> map = new LinkedHashMap();
public ZipOutputStream out = null;
public static void main(String[] args) throws Exception {
Zipuu zipuu = Zipuu.build("C:/temp/xxxx.zip");
// 先添加, 最后一起写入
zipuu.add("catalina.log", "C:/temp/catalina.log");
zipuu.add("xxxx/headimg.jpg", "C:/temp/xxxx/headimg.jpg");
zipuu.add("xxxx/info.json", "C:/temp/xxxx/info.json");
zipuu.add("xxxx/video.mp4", "C:/temp/xxxx/video.mp4");
zipuu.write();
// 边添加边写入
// zipuu.addwrite("catalina.log", "C:/temp/catalina.log");
// zipuu.addwrite("xxxx/headimg.jpg", "C:/temp/xxxx/headimg.jpg");
// zipuu.addwrite("xxxx/info.json", "C:/temp/xxxx/info.json");
// zipuu.addwrite("xxxx/video.mp4", "C:/temp/xxxx/video.mp4");
// zipuu.out.close();
}
public static Zipuu build(String zip) throws FileNotFoundException {
Zipuu zipuu = new Zipuu();
zipuu.zip = zip;
return zipuu;
}
public static Zipuu build() throws FileNotFoundException {
Zipuu zipuu = new Zipuu();
return zipuu;
}
public void add(String zippath, String path) throws Exception {
System.out.println("add " + zippath + " " + path);
map.put(zippath, path);
}
public void addwrite(String zippath, String path) throws Exception {
System.out.println("addwrite " + zippath + " " + path);
if (out == null)
out = new ZipOutputStream(new FileOutputStream(zip));
map.put(zippath, path);
out.putNextEntry(new ZipEntry(zippath));
FileInputStream fos = new FileInputStream(path);
int tag;
// 将源文件写入到zip文件中
while ((tag = fos.read()) != -1) {
out.write(tag);
}
fos.close();
}
public void write() throws Exception {
if (out == null)
out = new ZipOutputStream(new FileOutputStream(zip));
Iterator<String> irt = map.keySet().iterator();
while (irt.hasNext()) {
String zippath = irt.next();
String path = map.get(zippath);
System.out.println("write " + zippath + " " + path);
out.putNextEntry(new ZipEntry(zippath));
FileInputStream fos = new FileInputStream(path);
int tag;
// 将源文件写入到zip文件中
while ((tag = fos.read()) != -1) {
out.write(tag);
}
fos.close();
}
out.close();
System.out.println("完成");
}
}
Java zip压缩,生成压缩包
最新推荐文章于 2024-09-10 15:48:47 发布