<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
    主站蜘蛛池模板: 男女污污污超污视频免费在线看| 亚洲中文字幕无码爆乳app| 美女扒开屁股让男人桶爽免费| 性短视频在线观看免费不卡流畅| 亚洲精品亚洲人成在线麻豆| 99视频在线精品免费| 亚洲高清不卡视频| 国产a视频精品免费观看| 亚洲国产成+人+综合| AA免费观看的1000部电影| 亚洲精品无码专区| 免费在线精品视频| 国产午夜精品理论片免费观看| 国产成人精品日本亚洲网站| 97av免费视频| 最新亚洲卡一卡二卡三新区| 全黄性性激高免费视频| 九九99热免费最新版| 亚洲电影免费在线观看| 成年人性生活免费视频| 国产成人高清亚洲一区久久| 国产综合精品久久亚洲| 最近2022中文字幕免费视频| 久久精品国产亚洲AV蜜臀色欲| 高清国语自产拍免费视频国产| 色哟哟国产精品免费观看| 亚洲国产成人片在线观看无码 | 蜜臀亚洲AV无码精品国产午夜.| yy6080久久亚洲精品| 99在线热视频只有精品免费| 亚洲乱码在线观看| 亚洲精品岛国片在线观看| 无码人妻AV免费一区二区三区| 亚洲va久久久久| 国产亚洲美女精品久久久久狼| 国产啪精品视频网免费| 久久国产乱子伦精品免费午夜| 亚洲国产日韩在线| 亚洲欧洲中文日韩久久AV乱码| 亚洲成人免费网址| 亚洲黄片手机免费观看|