<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
    主站蜘蛛池模板: caoporm超免费公开视频| 亚洲日韩国产精品无码av| 亚洲精品中文字幕| 免费观看成人毛片a片2008| 亚洲视频精品在线| 久久午夜夜伦鲁鲁片免费无码| 浮力影院亚洲国产第一页| yellow视频免费看| 三上悠亚亚洲一区高清| 抽搐一进一出gif免费视频| 国产精品亚洲产品一区二区三区 | 国产精品亚洲小说专区| 黄网址在线永久免费观看| 亚洲日本VA中文字幕久久道具| 成人免费无码大片a毛片| 亚洲男人的天堂网站| 国产一区在线观看免费| 一级看片免费视频| 亚洲av无码无在线观看红杏| 在线免费中文字幕| 亚洲成_人网站图片| 免费jjzz在在线播放国产| 好湿好大好紧好爽免费视频| 亚洲国产精品va在线播放| 1000部禁片黄的免费看| 亚洲欧洲专线一区| 亚洲成片观看四虎永久| 成全在线观看免费观看大全| 亚洲电影唐人社一区二区| 热99re久久精品精品免费| 亚洲天堂免费在线视频| 亚洲综合在线视频| 青草草在线视频永久免费| 国产免费福利体检区久久| 久久久亚洲欧洲日产国码是AV| 亚洲人成电影网站免费| 深夜福利在线视频免费| 久久精品国产亚洲AV麻豆网站| 无码高潮少妇毛多水多水免费| 日韩在线观看免费| 久久亚洲AV无码精品色午夜麻豆|