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

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

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

    posts - 64,  comments - 9,  trackbacks - 0
    作者:曾巧(numenzq)

        最近做的一個項目需要用Java程序讀寫Zip文件,迫于找不到好的工具類來處理,也只好用java.util.zip包提供的類來實現Zip文件的壓縮和解壓操作了,在這之前你需要了解以下幾個基本概念:

    • ZipEntry:This class is used to represent a ZIP file entry.
    • ZipFile:This class is used to read entries from a zip file.
    • ZipInputStream:This class implements an input stream filter for reading files in the ZIP file format.
    • ZipOutputStream:This class implements an output stream filter for writing files in the ZIP file format.

    現在我們了解一下讀寫Zip文件的基本流程。當解壓時,從該Zip文件輸入流中讀取出ZipEntry,然后根據ZipEntry的信息,讀取對應文件的相應字節。代碼實現如下:

     

    publicsynchronizedstatic Map<String, byte[]> unZip(InputStream is)

               throws IOException {

           Map<String, byte[]> result = new HashMap<String, byte[]>();

          

           byte[] buf;

           ZipInputStream zis = new ZipInputStream(is);

           ZipEntry zipEntry = zis.getNextEntry();

           while (zipEntry != null) {

               if (zipEntry.isDirectory()) {

                  zipEntry = zis.getNextEntry();

                  continue;

               } else {

                  buf = newbyte[(int) zipEntry.getSize()];

                  zis.read(buf, 0, (int) zipEntry.getSize());

                   result.put(zipEntry.getName(), buf);

                  zipEntry = zis.getNextEntry();

               }

           }

           return result;

    }

    壓縮操作與解壓操作差不多,先將文件字節流組裝成ZipEntry,然后把ZipEntry加入到輸出流中即可。代碼實現如下:

    publicsynchronizedstaticByteArrayOutputStream zip(Map<String, byte[]> map)

               throws IOException {

           ByteArrayOutputStream baos = new ByteArrayOutputStream();

           ZipOutputStream zos = new ZipOutputStream(baos);

           ZipEntry zipEntry;

           for (String key : map.keySet()) {

               zipEntry = new ZipEntry(key);

               zipEntry.setSize(map.get(key).length);

               zipEntry.setTime(System.currentTimeMillis());

               zos.putNextEntry(zipEntry);

               zos.write(map.get(key));

               zos.flush();

           }

           zos.close();

           return baos;

        }

       

        至此,使用上面的兩個方法就能完成基本的Zip文件壓縮和解壓縮處理了;該方法只適合處理Zip格式的文件,對于GZip格式的文件,我相信你也能輕松搞定了:)。

    posted on 2009-12-09 09:50 super_nini 閱讀(870) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2009年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码专区亚洲AV桃| 人人爽人人爽人人片av免费| 亚洲综合无码一区二区痴汉| 日韩在线视频播放免费视频完整版 | 亚洲国产精品成人久久蜜臀| 亚洲精品免费视频| 大桥未久亚洲无av码在线| 97无码人妻福利免费公开在线视频 | 久久丫精品国产亚洲av| 国产亚洲精品2021自在线| 最近免费中文字幕大全免费| 久久亚洲国产精品123区| 亚洲色欲色欲www在线播放| 成全视频在线观看免费高清动漫视频下载 | eeuss影院ss奇兵免费com| 成人免费午夜在线观看| 亚洲国产成人私人影院| 免费视频成人片在线观看| 久久久青草青青国产亚洲免观| 一级做a爱片特黄在线观看免费看| 成人黄软件网18免费下载成人黄18免费视频| 亚洲乱码无限2021芒果| AAA日本高清在线播放免费观看| 久久久久亚洲AV片无码下载蜜桃| 亚洲精品在线免费观看视频| 精品国产_亚洲人成在线高清| 黄色网址在线免费观看| 性一交一乱一视频免费看| 亚洲伊人久久精品| 在线观看91精品国产不卡免费| 在线观看日本亚洲一区| 免费A级毛片在线播放不收费| 亚洲AV永久无码精品一福利| 亚洲国产日韩成人综合天堂| 看Aⅴ免费毛片手机播放| 亚洲精品无码高潮喷水在线| 国产h视频在线观看免费| 国产成人亚洲合集青青草原精品| 日本免费网址大全在线观看| 亚洲国产精品网站久久| 中文字幕无码不卡免费视频|