J2EE社區

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

          java 壓縮文件 ZipOutputStream 支持中文

          Posted on 2009-10-30 22:17 xcp 閱讀(2992) 評論(1)  編輯  收藏 所屬分類: JAVA
                 最近因為項目的需要,要做一個打包下載..而java提供的java.util.zip.*.......對中文不支持...反來到網上看了一下..要修改java的原代碼..而無意之間又發現了ant的打包,直接支持中文打包..當時樂得...下面就是一個簡單的例子,注 需要導入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  智能開發實驗室 所有 Program Name:災情信息管理系統
           *          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
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我


          Feedback

          # re: java 壓縮文件 ZipOutputStream 支持中文  回復  更多評論   

          2011-08-31 15:41 by qwe
          asdsad
          主站蜘蛛池模板: 登封市| 韩城市| 大宁县| 赣州市| 延津县| 龙胜| 娄底市| 尖扎县| 陆川县| 曲麻莱县| 密山市| 海城市| 滦平县| 普兰县| 高州市| 鹤壁市| 庐江县| 基隆市| 阿克苏市| 合作市| 陇西县| 临桂县| 南昌县| 皋兰县| 厦门市| 开远市| 梅河口市| 岚皋县| 开化县| 马公市| 含山县| 巴南区| 沧源| 鹤岗市| 新泰市| 双牌县| 绿春县| 贵德县| 泾源县| 西吉县| 晋宁县|