java zip文件夹_如何使用java压缩文件夹成为zip包
展開(kāi)全部
在JDK中有一個(gè)zip工具類(lèi):java.util.zip ? ?Provides classes for reading and writing the standard ZIP and
GZIP file formats.
使用此類(lèi)可以將文件夾或者多個(gè)文件進(jìn)行打包壓縮操作。
在使用之前先了解62616964757a686964616fe59b9ee7ad9431333363376462關(guān)鍵方法:ZipEntry(String name) ????????Creates a new zip entry with the specified name.
使用ZipEntry的構(gòu)造方法可以創(chuàng)建一個(gè)zip壓縮文件包的實(shí)例,然后通過(guò)ZipOutputStream將待壓縮的文件以流的形式寫(xiě)進(jìn)該壓縮包中。具體實(shí)現(xiàn)代碼如下:import?java.io.BufferedInputStream;
import?java.io.BufferedOutputStream;
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;
/**
*?將文件夾下面的文件
*?打包成zip壓縮文件
*
*?@author?admin
*
*/
public?final?class?FileToZip?{
private?FileToZip(){}
/**
*?將存放在sourceFilePath目錄下的源文件,打包成fileName名稱(chēng)的zip文件,并存放到zipFilePath路徑下
*?@param?sourceFilePath?:待壓縮的文件路徑
*?@param?zipFilePath?:壓縮后存放路徑
*?@param?fileName?:壓縮后文件的名稱(chēng)
*?@return
*/
public?static?boolean?fileToZip(String?sourceFilePath,String?zipFilePath,String?fileName){
boolean?flag?=?false;
File?sourceFile?=?new?File(sourceFilePath);
FileInputStream?fis?=?null;
BufferedInputStream?bis?=?null;
FileOutputStream?fos?=?null;
ZipOutputStream?zos?=?null;
if(sourceFile.exists()?==?false){
System.out.println("待壓縮的文件目錄:"+sourceFilePath+"不存在.");
}else{
try?{
File?zipFile?=?new?File(zipFilePath?+?"/"?+?fileName?+".zip");
if(zipFile.exists()){
System.out.println(zipFilePath?+?"目錄下存在名字為:"?+?fileName?+".zip"?+"打包文件.");
}else{
File[]?sourceFiles?=?sourceFile.listFiles();
if(null?==?sourceFiles?||?sourceFiles.length<1){
System.out.println("待壓縮的文件目錄:"?+?sourceFilePath?+?"里面不存在文件,無(wú)需壓縮.");
}else{
fos?=?new?FileOutputStream(zipFile);
zos?=?new?ZipOutputStream(new?BufferedOutputStream(fos));
byte[]?bufs?=?new?byte[1024*10];
for(int?i=0;i
//創(chuàng)建ZIP實(shí)體,并添加進(jìn)壓縮包
ZipEntry?zipEntry?=?new?ZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
//讀取待壓縮的文件并寫(xiě)進(jìn)壓縮包里
fis?=?new?FileInputStream(sourceFiles[i]);
bis?=?new?BufferedInputStream(fis,?1024*10);
int?read?=?0;
while((read=bis.read(bufs,?0,?1024*10))?!=?-1){
zos.write(bufs,0,read);
}
}
flag?=?true;
}
}
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
throw?new?RuntimeException(e);
}?catch?(IOException?e)?{
e.printStackTrace();
throw?new?RuntimeException(e);
}?finally{
//關(guān)閉流
try?{
if(null?!=?bis)?bis.close();
if(null?!=?zos)?zos.close();
}?catch?(IOException?e)?{
e.printStackTrace();
throw?new?RuntimeException(e);
}
}
}
return?flag;
}
public?static?void?main(String[]?args){
String?sourceFilePath?=?"D:\\TestFile";
String?zipFilePath?=?"D:\\tmp";
String?fileName?=?"12700153file";
boolean?flag?=?FileToZip.fileToZip(sourceFilePath,?zipFilePath,?fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失敗!");
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java zip文件夹_如何使用java压缩文件夹成为zip包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: k8s 查看ip地址属于哪个pod_一个
- 下一篇: java打印已经被加载的类_使用URLC