3.13 - 3.14 Java学习总结
作者:互联网
ZIP压缩 输入/输出 流
压缩文件
package Test.ppy.oo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.*;
public class ZipOSTest {
private void zip(String zipFileName, File inputFile)throws Exception{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
System.out.println("压缩中......");
out.close();
}
private void zip(ZipOutputStream out, File f, String base) throws IOException {
if(f.isDirectory()) {
File[] ff = f.listFiles();
if(base.length() != 0) {
out.putNextEntry(new ZipEntry(base + "/"));
}
for(int i = 0; i < ff.length; i++) {
zip(out, ff[i], base + ff[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);
}
in.close();
}
}
public static void main(String[] args) throws Exception {
ZipOSTest z = new ZipOSTest();
z.zip("E:/ZipTest.zip", new File("E:/Ziptest"));
System.out.println("压缩完成");
}
}
E:\Ziptest\DSM.txt
E:\Ziptest\LBW.txt
压缩中......
压缩完成
压缩前
压缩后
解压缩
package Test.ppy.oo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
public class ZipISTest {
public static void main(String[] temp) throws ZipException, IOException {
File f = new File("F:\\eclipse project\\容器\\ZipTest.zip");
ZipInputStream zin;
ZipFile zf = new ZipFile(f);
zin = new ZipInputStream(new FileInputStream(f));
ZipEntry en = zin.getNextEntry();
while(((en = zin.getNextEntry()) != null) && !en.isDirectory()) {
File tmp = new File("F:\\" + en.getName());
if(!tmp.exists()) {
tmp.getParentFile().mkdirs();
OutputStream os = new FileOutputStream(tmp);
InputStream in = zf.getInputStream(en);
int cnt = 0;
while((cnt = in.read()) != -1) {
os.write(cnt);
}
os.close();
in.close();
}
zin.closeEntry();
System.out.println(en.getName() + "解压成功");
}
zin.close();
zf.close();
}
}
弄了几个小时还是弄不出,查了资料也问了学长,可能是学的太少,等东西学多了可能就知道怎么解决了。
标签:java,zip,import,3.13,3.14,io,new,Java,out 来源: https://blog.csdn.net/qq_45839708/article/details/104864536