<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 原理是:為指定目錄的所有文件創建一個ZipEntry(壓縮流入口),然后把文件寫進去;當遇到子目錄時,調用遞歸函數,把它壓縮成另一個zip文件,當作一般文件寫進去.
    ?5 //使用方法?java?Zip?<目錄名>
    ?6 */

    ?7
    ?8 // java.util.zip包提供了數據壓縮和解壓縮的類
    ?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函數將一個指定目錄(包括它子目錄)壓縮成一個同名壓縮文件(這里稱為"ORIGIN")
    24 ???? public ? static ?File?ZipSubdirectory(File?myDir) throws ?IOException {
    25 ???? // 創建緩沖輸入流BufferedInputStream?
    26 ????BufferedInputStream?origin = null ;
    27 ???? // 創建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[]獲取當前目錄(myDir)所有文件對象(包括子目錄名)
    32 ????File?dirContents[] = myDir.listFiles();
    33 ???? // 創建臨時文件tempFile,使用后刪除
    34 ????File?tempFile = null ;?
    35 ???? try {
    36 ???????? // 處理當前目錄所有文件對象,包括子目錄
    37 ???????? for ( int ?i = 0 ;i < dirContents.length;i ++ ) {
    38 ???????????? // 使用遞歸方法將當前目錄的子目錄轉成一個ZIP文件,并作為一個ENTRY加進"ORIGIN"?
    39 ???????????? if (dirContents[i].isDirectory()) {
    40 ????????????????tempFile = ZipSubdirectory(dirContents[i]);
    41 ????????????????flag = true ;
    42 ????????????}

    43 ???????????? // 如果當前文件不是子目錄
    44 ???????????? else {
    45 ????????????????tempFile = dirContents[i];
    46 ???????????????? // flag標記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 ???????????? // 為被讀取的文件創建壓縮條目
    55 ????????????ZipEntry?entry = new ?ZipEntry(tempFile.getName());
    56 ???????????? byte ?data[] = new ? byte [BUFFER];
    57 ???????????? int ?count;
    58 ???????????? // 在向ZIP輸出流寫入數據之前,必須首先使用out.putNextEntry(entry);?方法安置壓縮條目對象?
    59 ????????????out.putNextEntry(entry);
    60 ????????????
    61 ???????????? // 向ZIP?文件寫入數據?
    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 ???????????? // 關閉輸入流?
    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
    主站蜘蛛池模板: 毛片大全免费观看| 亚洲日本中文字幕一区二区三区| 99re这里有免费视频精品 | 一级特级aaaa毛片免费观看| 午夜私人影院免费体验区| 亚洲国产日韩精品| 国产高清对白在线观看免费91| 亚洲国产高清在线一区二区三区| 美景之屋4在线未删减免费 | a拍拍男女免费看全片| 国产精品久久免费视频| 久久久久亚洲精品无码网址色欲| 国产麻豆成人传媒免费观看| 久久亚洲国产欧洲精品一| 亚洲欧美国产欧美色欲| 日韩高清免费在线观看| 四虎影视久久久免费观看| 中文字幕无码成人免费视频 | 成人福利在线观看免费视频| 亚洲国产一级在线观看 | 亚洲福利视频导航| 青青草97国产精品免费观看| 中文字幕日韩亚洲| 小说区亚洲自拍另类| 无码中文字幕av免费放| 美国毛片亚洲社区在线观看| 国产性爱在线观看亚洲黄色一级片 | 18禁止观看免费私人影院| 亚洲欧美成aⅴ人在线观看| 亚洲第一黄片大全| 免费观看男人吊女人视频| 国产91在线|亚洲| 无码免费一区二区三区免费播放| 国产精品亚洲二区在线观看 | 永久亚洲成a人片777777| 黄页网站在线观看免费| 亚洲国产精品乱码一区二区 | 久久久久久精品成人免费图片| 亚洲日韩国产一区二区三区在线| 久久亚洲精品无码播放| 免费人成网站在线观看10分钟|