J2EE社區(qū)

          茍有恒,何必三更起五更眠;
          最無(wú)益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          java 壓縮文件 ZipOutputStream 支持中文

          Posted on 2009-10-30 22:17 xcp 閱讀(2993) 評(píng)論(1)  編輯  收藏 所屬分類: JAVA
                 最近因?yàn)轫?xiàng)目的需要,要做一個(gè)打包下載..而java提供的java.util.zip.*.......對(duì)中文不支持...反來(lái)到網(wǎng)上看了一下..要修改java的原代碼..而無(wú)意之間又發(fā)現(xiàn)了ant的打包,直接支持中文打包..當(dāng)時(shí)樂(lè)得...下面就是一個(gè)簡(jiǎn)單的例子,注 需要導(dǎo)入ant.jar支持包.

                
          package cn.edu.cuit.disasterSystem.web.struts2.action;

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;

          import org.apache.tools.zip.ZipOutputStream;

          /**
           * 
           * 
          @author xcp
           * 
          @version 1.0 Copyright (C), 2009  智能開(kāi)發(fā)實(shí)驗(yàn)室 所有 Program Name:災(zāi)情信息管理系統(tǒng)
           *          Date: 2009-10-28 下午11:29:42
           
          */
          public class CompressToZip {
              
          public void zip(String inputFileName) throws Exception {
                  String zipFileName 
          = "d:\\批量打包.zip";// 打包后文件名字
                  System.out.println(zipFileName);
                  zip(zipFileName, 
          new File(inputFileName));

              }

              
          private void zip(String zipFileName, File inputFile)throws Exception {
                  ZipOutputStream out 
          = new ZipOutputStream(new FileOutputStream(zipFileName));
                  zip(out, inputFile, 
          "");
                  System.out.println(
          "zip done");
                  out.close();
              }
              

              
          private void zip(ZipOutputStream out, File f, String base) throws Exception {
                  
          if (f.isDirectory()) {
                      File[] fl 
          = f.listFiles();
                      System.out.println(
          "新增目錄元素   " +base+ "/");
                      out.putNextEntry(
          new org.apache.tools.zip.ZipEntry(base + "/"));
                      base 
          = base.length() == 0 ? "" : base + "/";
                      
          for (int i = 0; i < fl.length; i++) {
                          zip(out, fl[i], base 
          + fl[i].getName());
                      }
                  } 
          else {
                      System.out.println(
          "新增普通文件元素   " +base);
                      out.putNextEntry(
          new org.apache.tools.zip.ZipEntry(base));
                      FileInputStream in 
          = new FileInputStream(f);
                      
          int b;
                      
          while ((b = in.read()) != -1) {
                          out.write(b);
                      }
                      in.close();
                  }
              }

              
          public static void main(String[] args) {
                  CompressToZip test 
          = new CompressToZip();
                  
          try {
                      test.zip(
          "d:\\temp");
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }
              }
          }

               
                  


          名稱: ?4C.ESL | .↗Evon
          口號(hào): 遇到新問(wèn)題?先要尋找一個(gè)方案乄而不是創(chuàng)造一個(gè)方案こ
          mail: 聯(lián)系我


          Feedback

          # re: java 壓縮文件 ZipOutputStream 支持中文  回復(fù)  更多評(píng)論   

          2011-08-31 15:41 by qwe
          asdsad
          主站蜘蛛池模板: 滦南县| 东兰县| 长岭县| 奈曼旗| 抚远县| 若尔盖县| 通城县| 岐山县| 潜山县| 菏泽市| 临猗县| 曲周县| 孙吴县| 逊克县| 阿巴嘎旗| 化德县| 玛纳斯县| 襄垣县| 承德县| 鄯善县| 平南县| 高安市| 东乌珠穆沁旗| 陆良县| 博白县| 东光县| 宝鸡市| 石狮市| 彝良县| 三江| 阿勒泰市| 遂川县| 富宁县| 巴林右旗| 西充县| 玉屏| 和顺县| 宁阳县| 玉林市| 雷山县| 镇原县|