- 参考
- https://www.cnblogs.com/lrh-xl/p/5509005.html
- https://www.wenjiangs.com/search?word=ZipEntry
- java.util.zip
文件的压缩和解压,主要用到了两个IO流-ZipInputStream, ZipOutputStream,不仅可以对文件进行压缩,还可以对文件夹进行压缩和解压。
ZipInputStream位于java.util.zip包下。
-先上示例在详解
File file = new File("D:\\io\\zip\\hah.doc");
File file1 = new File("D:\\io\\zip\\bbb.docx");
File file2 = new File("D:\\io\\zip\\test.zip");
FileInputStream fileinput = new FileInputStream(file1);
BufferedInputStream bufferedinput = new BufferedInputStream(fileinput);
FileOutputStream fileout = new FileOutputStream(file2);
ZipOutputStream zipout = new ZipOutputStream(fileout);
BufferedOutputStream bufferedout = new BufferedOutputStream(zipout);
zipout.putNextEntry(new ZipEntry("bbb.docx"));
byte[] bytes = new byte[1024];
while (true){
int read = bufferedinput.read(bytes);
if(read == -1){
break;
}
bufferedout.write(bytes,0,read);
}
bufferedinput.close();
bufferedout.close();
package com.kuangsheng.mybatis_plus.test;
import java.io.*;
import java.math.BigDecimal;
import java.net.SocketTimeoutException;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TreeSet;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("D:\\io\\demo");
File file1 = new File("D:\\io\\zip\\bbb.docx");
File file2 = new File("D:\\io\\demo.zip");
ZipOutputStream zipout = new ZipOutputStream(new FileOutputStream(file2));
if(file.isDirectory()){
File[] files = file.listFiles();
for(int a=0;a<files.length;a++){
BufferedInputStream bufferedinput = new BufferedInputStream(new FileInputStream(files[a]));
zipout.putNextEntry(new ZipEntry(file.getName()+file.separator+files[a].getName()));
byte[] bytes = new byte[1024];
while (true){
int read = bufferedinput.read(bytes);
if(read== -1)
break;
zipout.write(bytes,0,read);
}
bufferedinput.close();
}
}
zipout.close();
}
}
package com.kuangsheng.mybatis_plus.test;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
public class ZipDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\io\\demo.zip");
ZipFile zipFile = new ZipFile(file);
ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
ZipEntry entry = null;
while((entry=zipInput.getNextEntry())!= null){
System.out.println("源文件"+entry.getName());
File outputfile = new File("D:\\io\\good\\"+entry.getName());
System.out.println(outputfile.getParentFile().exists());
if(!outputfile.getParentFile().exists()){
outputfile.getParentFile().mkdirs();
}
System.out.println(outputfile.getParentFile().exists());
if(!outputfile.exists()){
outputfile.createNewFile();
}
BufferedInputStream bufferedinput = new BufferedInputStream(zipFile.getInputStream(entry));
BufferedOutputStream bufferedoutput = new BufferedOutputStream(new FileOutputStream(outputfile));
byte[] bytes = new byte[1024];
while(true){
int len = bufferedinput.read(bytes);
if(len ==-1)
break;
bufferedoutput.write(bytes,0,len);
}
bufferedinput.close();
bufferedoutput.close();
}
zipInput.close();
}
}