编程语言
首页 > 编程语言> > 3.13 - 3.14 Java学习总结

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