importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.zip.ZipEntry...
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Test15_7_1 {
private void zip(ZipOutputStream out, File f, String base)
throws IOException {
if (f.isDirectory()) {
File[] f1 = f.listFiles();
out.putNextEntry(new ZipEntry(base + "/")); // //?????
base = base.length() == 0 ? "" : base + "/";// //?????这两句的作用是什么啊?看不懂
for (int i = 0; i < f1.length; i++) {
zip(out, f1[i], base + f1[i]);
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while ((b = in.read()) != -1) {
out.write(b); // //???写入数据这里怎么是int型的呢?不应该是字符型吗??
}
in.close();
}
}// /
private void zip(String zipFileName, File inputFile) throws IOException {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
System.out.println("压缩中...");
out.close();
}//
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Test15_7_1 book = new Test15_7_1();
book.zip("file12.zip", new File("file12"));
System.out.println("压缩完成");
}// //main
}
// 结果:
// file12\word.doc
// file12\word.jpg
// file12\word.txt
// file12\word.xls
// file12\工具逻辑.doc
// 压缩中...
// 压缩完成
展开