<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0

    ?

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

    ?7
    ?8 // java.util.zip包提供了數(shù)據(jù)壓縮和解壓縮的類
    ?9 import ?java.io. * ;
    10 import ?java.util.zip. * ;
    11
    12
    13 public ? class ?FileZip {
    14 ????
    15 ???? static ? final ? int ?BUFFER = 2048 ;?
    16 ???? static ? boolean ?flag = false ;
    17 ????
    18 ???? public ? static ? void ?main(String?args[]) throws ?IOException {
    19 ????????File?file = new ?File(args[ 0 ]);
    20 ????????FileInputStream?file1 = new ?FileInputStream(ZipSubdirectory(file));
    21 ????}

    22 ????
    23 ???? // ZipSubdirectory函數(shù)將一個指定目錄(包括它子目錄)壓縮成一個同名壓縮文件(這里稱為"ORIGIN")
    24 ???? public ? static ?File?ZipSubdirectory(File?myDir) throws ?IOException {
    25 ???? // 創(chuàng)建緩沖輸入流BufferedInputStream?
    26 ????BufferedInputStream?origin = null ;
    27 ???? // 創(chuàng)建ZipOutputStream對象,將向它傳遞希望寫入文件的輸出流
    28 ????File?zipFile = new ?File(myDir.getName() + " .zip " );
    29 ????FileOutputStream?fos = new ?FileOutputStream(zipFile);
    30 ????ZipOutputStream?out = new ?ZipOutputStream( new ?BufferedOutputStream(fos,BUFFER));
    31 ???? // dirContents[]獲取當(dāng)前目錄(myDir)所有文件對象(包括子目錄名)
    32 ????File?dirContents[] = myDir.listFiles();
    33 ???? // 創(chuàng)建臨時文件tempFile,使用后刪除
    34 ????File?tempFile = null ;?
    35 ???? try {
    36 ???????? // 處理當(dāng)前目錄所有文件對象,包括子目錄
    37 ???????? for ( int ?i = 0 ;i < dirContents.length;i ++ ) {
    38 ???????????? // 使用遞歸方法將當(dāng)前目錄的子目錄轉(zhuǎn)成一個ZIP文件,并作為一個ENTRY加進(jìn)"ORIGIN"?
    39 ???????????? if (dirContents[i].isDirectory()) {
    40 ????????????????tempFile = ZipSubdirectory(dirContents[i]);
    41 ????????????????flag = true ;
    42 ????????????}

    43 ???????????? // 如果當(dāng)前文件不是子目錄
    44 ???????????? else {
    45 ????????????????tempFile = dirContents[i];
    46 ???????????????? // flag標(biāo)記tempFile是否由子目錄壓縮成的ZIP文件
    47 ????????????????flag = false ;
    48 ????????????}

    49 ????????????
    50 ????????????System.out.println( " Compress?file:? " + tempFile.getName());
    51 ????????????
    52 ????????????FileInputStream?fis = new ?FileInputStream(tempFile);
    53 ????????????origin = new ?BufferedInputStream(fis,BUFFER);
    54 ???????????? // 為被讀取的文件創(chuàng)建壓縮條目
    55 ????????????ZipEntry?entry = new ?ZipEntry(tempFile.getName());
    56 ???????????? byte ?data[] = new ? byte [BUFFER];
    57 ???????????? int ?count;
    58 ???????????? // 在向ZIP輸出流寫入數(shù)據(jù)之前,必須首先使用out.putNextEntry(entry);?方法安置壓縮條目對象?
    59 ????????????out.putNextEntry(entry);
    60 ????????????
    61 ???????????? // 向ZIP?文件寫入數(shù)據(jù)?
    62 ???????????? while ((count = origin.read(data, 0 ,BUFFER)) !=- 1 ) {
    63 ????????????????out.write(data, 0 ,count);
    64 ????????????}

    65 ????????????
    66 ???????????? // tempFile是臨時生成的ZIP文件,刪除它
    67 ???????????? if (flag == true ) {
    68 ????????????????flag = tempFile.delete();
    69 ????????????????System.out.println( " Delete?file: " + tempFile.getName() + flag);?
    70 ????????????}
    ?
    71 ???????????? // 關(guān)閉輸入流?
    72 ????????????origin.close();?
    73 ????????}

    74 ????????out.close();
    75 ????}

    76 ???? catch (Exception?e) {System.out.println(e);
    77 ????}

    78 ???? // 遞歸返回?
    79 ???? return ?zipFile;?
    80 ????}

    81 }

    82
    posted on 2006-04-21 17:11 kelven 閱讀(1027) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产一区二区免费在线| 青青青亚洲精品国产| 亚洲中文字幕无码爆乳av中文| 91嫩草亚洲精品| 全部免费a级毛片| 久久WWW免费人成人片| 亚洲国产精品免费视频| 中文字幕看片在线a免费| 国产成人高清亚洲一区久久 | 亚洲综合国产精品| 免费乱理伦在线播放| 蜜臀91精品国产免费观看| 中国人xxxxx69免费视频| 中文字幕免费不卡二区| 一级做受视频免费是看美女| 亚洲hairy多毛pics大全| 亚洲五月综合网色九月色| 亚洲黄色网址在线观看| 亚洲AV无码成人专区片在线观看 | 亚洲精品成人a在线观看| 日韩吃奶摸下AA片免费观看| 亚洲毛片免费视频| 三年片在线观看免费大全电影| 亚洲性69影院在线观看| 亚洲αv在线精品糸列| 亚洲精品自产拍在线观看| 亚洲男女内射在线播放| 亚洲AV之男人的天堂| 免费一级一片一毛片| 免费看少妇作爱视频| 可以免费看的卡一卡二| 久九九精品免费视频| 国产乱码免费卡1卡二卡3卡| 美女视频黄的全免费视频网站| 视频免费1区二区三区| 国产成人亚洲精品蜜芽影院| 成人免费观看男女羞羞视频| 国产精品极品美女自在线观看免费 | 亚洲综合综合在线| 亚洲尹人九九大色香蕉网站| 亚洲AV天天做在线观看|