package com.zl.myzip;
import java.io.File;
import java.io.IOException;
public class TestMyZip {
public static void main(String[] args) {
MyZip myZip = new MyZip();
try {
myZip.zip("C:\\Users\\Administrator\\Desktop\\hello.zip",
new File("D:\\新建文件夹\\20191014优就业\\Java\\JavaSECode\\ZIPfile"));
System.out.println("压缩完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.zl.myzip;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class MyZip {
public void zip(String zipFileName, File inputFileNme) throws IOException {
ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(outputStream, inputFileNme, "");
System.out.println("正在压缩中");
outputStream.finish();
}
private void zip(ZipOutputStream out, File f, String base) throws IOException {
if (f.isDirectory()) {
File[] fs = f.listFiles();
if (fs.length != 0) {
if (base.length() != 0) {
out.putNextEntry(new ZipEntry(base + "/"));
}
for (int i = 0; i < fs.length; i++) {
zip(out, fs[i], base + fs[i]);
}
}
} else {
out.putNextEntry(new ZipEntry(base));
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(f));
int len;
byte[] flush = new byte[1024];
while ((len = bufferedInputStream.read()) != -1) {
out.write(flush);
}
bufferedInputStream.close();
}
}
}