国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

用ZipOutputStream壓縮目錄

2019-11-18 11:04:11
字體:
供稿:網(wǎng)友

 


/*本實例采用遞歸的方法,把指定的目錄(包括子目錄)壓縮成一個Zip文件。
原理是:為指定目錄的所有文件創(chuàng)建一個ZipEntry(壓縮流入口),然后把文件寫進去;當(dāng)碰到子目錄時,調(diào)用遞歸函數(shù),把它壓縮成另一個zip文件,當(dāng)作一般文件寫進去.
//使用方法 java Zip <目錄名>

//java.util.zip包提供了數(shù)據(jù)壓縮和解壓縮的類
import java.io.*;
import java.util.zip.*;
public class Zip{
static final int BUFFER=2048;
static boolean flag=false;
public static void main(String args[])throws IOException{
File file=new File(args[0]);
FileInputStream file1=new FileInputStream(ZipSubDirectory(file));
}
//ZipSubdirectory函數(shù)將一個指定目錄(包括它子目錄)壓縮成一個同名壓縮文件(這里稱為"ORIGIN")
public static File ZipSubdirectory(File myDir)throws IOException{
//創(chuàng)建緩沖輸入流BufferedInputStream
BufferedInputStream origin=null;
//創(chuàng)建ZipOutputStream對象,將向它傳遞希望寫入文件的輸出流
File zipFile=new File(myDir.getName()+".zip");
FileOutputStream fos=new FileOutputStream(zipFile);
ZipOutputStream out=new ZipOutputStream(new BufferedOutputStream(fos,BUFFER));
//dirContents[]獲取當(dāng)前目錄(myDir)所有文件對象(包括子目錄名)
File dirContents[]=myDir.listFiles();
//創(chuàng)建臨時文件tempFile,使用后刪除
File tempFile=null;
try{
//處理當(dāng)前目錄所有文件對象,包括子目錄
for(int i=0;i
//使用遞歸方法將當(dāng)前目錄的子目錄轉(zhuǎn)成一個ZIP文件,并作為一個ENTRY加進"ORIGIN"
if(dirContents[i].isDirectory()){
tempFile=ZipSubdirectory(dirContents[i]);
flag=true;
}
//假如當(dāng)前文件不是子目錄
else{
tempFile=dirContents[i];
//flag標(biāo)記tempFile是否由子目錄壓縮成的ZIP文件
flag=false;
}
System.out.FileInputStream fis=new FileInputStream(tempFile);
origin=new BufferedInputStream(fis,BUFFER);
//為被讀取的文件創(chuàng)建壓縮條目
ZipEntry entry=new ZipEntry(tempFile.getName());
byte data[]=new byte[BUFFER];
int count;
//在向ZIP輸出流寫入數(shù)據(jù)之前,必須首先使用out.putNextEntry(entry); 方法安置壓縮條目對象
out.putNextEntry(entry);
//向ZIP 文件寫入數(shù)據(jù)
while((count=origin.read(data,0,BUFFER))!=-1){
out.write(data,0,count);
}
//tempFile是臨時生成的ZIP文件,刪除它
if(flag==true){
flag=tempFile.delete();
System.out.println("Delete file:"+tempFile.getName()+flag);
}
//關(guān)閉輸入流
origin.close();
}
out.close();
}catch(Exception e){System.out.println(e);
}
//遞歸返回
return zipFile;
}
)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巩义市| 永宁县| 五华县| 盐亭县| 红安县| 高要市| 四平市| 安泽县| 保山市| 赣州市| 日照市| 龙门县| 泉州市| 栖霞市| 汤原县| 贡觉县| 新龙县| 南郑县| 南投县| 甘谷县| 大埔县| 偏关县| 城步| 裕民县| 茌平县| 璧山县| 安平县| 德安县| 博罗县| 锦屏县| 施甸县| 灵台县| 积石山| 永兴县| 河南省| 图们市| 布尔津县| 泽州县| 东平县| 绥芬河市| 石门县|