Dev@Free

          zJun's Tech Weblog

          Compress and Uncompress in Java

          整理自: The Java Developers Almanac 1.4

          Compressing a File in the GZIP Format:
          try ?{
          ????
          // ?Create?the?GZIP?output?stream
          ????String?outFilename? = ? " outfile.gzip " ;
          ????GZIPOutputStream?out?
          = ? new ?GZIPOutputStream( new ?FileOutputStream(outFilename));

          ????
          // ?Open?the?input?file
          ????String?inFilename? = ? " infilename " ;
          ????FileInputStream?in?
          = ? new ?FileInputStream(inFilename);

          ????
          // ?Transfer?bytes?from?the?input?file?to?the?GZIP?output?stream
          ???? byte []?buf? = ? new ? byte [ 1024 ];
          ????
          int ?len;
          ????
          while ?((len? = ?in.read(buf))? > ? 0 )?{
          ????????out.write(buf,?
          0 ,?len);
          ????}
          ????in.close();

          ????
          // ?Complete?the?GZIP?file
          ????out.finish();
          ????out.close();
          }?
          catch ?(IOException?e)?{
          }

          Uncompressing a File in the GZIP Format:
          try ?{
          ????
          // ?Open?the?compressed?file
          ????String?inFilename? = ? " infile.gzip " ;
          ????GZIPInputStream?in?
          = ? new ?GZIPInputStream( new ?FileInputStream(inFilename));

          ????
          // ?Open?the?output?file
          ????String?outFilename? = ? " outfile " ;
          ????OutputStream?out?
          = ? new ?FileOutputStream(outFilename);

          ????
          // ?Transfer?bytes?from?the?compressed?file?to?the?output?file
          ???? byte []?buf? = ? new ? byte [ 1024 ];
          ????
          int ?len;
          ????
          while ?((len? = ?in.read(buf))? > ? 0 )?{
          ????????out.write(buf,?
          0 ,?len);
          ????}

          ????
          // ?Close?the?file?and?stream
          ????in.close();
          ????out.close();
          }?
          catch ?(IOException?e)?{
          }

          Creating a ZIP File:
          // ?These?are?the?files?to?include?in?the?ZIP?file
          String[]?filenames? = ? new ?String[]{ " filename1 " ,? " filename2 " };

          // ?Create?a?buffer?for?reading?the?files
          byte []?buf? = ? new ? byte [ 1024 ];

          try ?{
          ????
          // ?Create?the?ZIP?file
          ????String?outFilename? = ? " outfile.zip " ;
          ????ZipOutputStream?out?
          = ? new ?ZipOutputStream( new ?FileOutputStream(outFilename));

          ????
          // ?Compress?the?files
          ???? for ?( int ?i = 0 ;?i < filenames.length;?i ++ )?{
          ????????FileInputStream?in?
          = ? new ?FileInputStream(filenames[i]);

          ????????
          // ?Add?ZIP?entry?to?output?stream.
          ????????out.putNextEntry( new ?ZipEntry(filenames[i]));

          ????????
          // ?Transfer?bytes?from?the?file?to?the?ZIP?file
          ???????? int ?len;
          ????????
          while ?((len? = ?in.read(buf))? > ? 0 )?{
          ????????????out.write(buf,?
          0 ,?len);
          ????????}

          ????????
          // ?Complete?the?entry
          ????????out.closeEntry();
          ????????in.close();
          ????}

          ????
          // ?Complete?the?ZIP?file
          ????out.close();
          }?
          catch ?(IOException?e)?{
          }

          Listing the Contents of a ZIP File:
          try ?{
          ????
          // ?Open?the?ZIP?file
          ????ZipFile?zf? = ? new ?ZipFile( " filename.zip " );

          ????
          // ?Enumerate?each?entry
          ???? for ?(Enumeration?entries? = ?zf.entries();?entries.hasMoreElements();)?{
          ????????
          // ?Get?the?entry?name
          ????????String?zipEntryName? = ?((ZipEntry)entries.nextElement()).getName();
          ????}
          }?
          catch ?(IOException?e)?{
          }

          Retrieving a Compressed File from a ZIP File:
          try ?{
          ????
          // ?Open?the?ZIP?file
          ????String?inFilename? = ? " infile.zip " ;
          ????ZipInputStream?in?
          = ? new ?ZipInputStream( new ?FileInputStream(inFilename));

          ????
          // ?Get?the?first?entry
          ????ZipEntry?entry? = ?in.getNextEntry();

          ????
          // ?Open?the?output?file
          ????String?outFilename? = ? " o " ;
          ????OutputStream?out?
          = ? new ?FileOutputStream(outFilename);

          ????
          // ?Transfer?bytes?from?the?ZIP?file?to?the?output?file
          ???? byte []?buf? = ? new ? byte [ 1024 ];
          ????
          int ?len;
          ????
          while ?((len? = ?in.read(buf))? > ? 0 )?{
          ????????out.write(buf,?
          0 ,?len);
          ????}

          ????
          // ?Close?the?streams
          ????out.close();
          ????in.close();
          }?
          catch ?(IOException?e)?{
          }

          posted on 2008-06-03 23:02 zJun's帛羅閣 閱讀(1356) 評論(1)  編輯  收藏 所屬分類: Java基礎

          評論

          # re: Compress and Uncompress in Java 2009-12-20 05:54 Krista22

          The whole internet is full with <a href="http://www.primedissertations.com">thesis writing service</a> and thesis proposal referring to this good topic though to get really good accomplished <a href="http://www.primedissertations.com">dissertation</a>, students can find it.   回復  更多評論   

          導航

          <2008年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊

          收藏夾

          博客

          文檔

          站點

          論壇

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丰城市| 西吉县| 洪江市| 尼玛县| 平昌县| 凌海市| 类乌齐县| 宁陵县| 玉林市| 三穗县| 高尔夫| 三江| 鄂尔多斯市| 久治县| 房产| 晋州市| 宣武区| 石阡县| 信宜市| 陆丰市| 政和县| 晋州市| 冕宁县| 辽源市| 合作市| 武鸣县| 洞头县| 恭城| 利川市| 和硕县| 利辛县| 三亚市| 石家庄市| 沁阳市| 皋兰县| 皮山县| 商都县| 南平市| 措美县| 瑞丽市| 福海县|