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

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

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

    J2EE社區(qū)

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

    java 解縮文件 zipFile支持中文

    Posted on 2009-10-30 22:28 xcp 閱讀(3297) 評(píng)論(2)  編輯  收藏 所屬分類: JAVA
          前面寫了一篇,java 壓縮文件 ZipOutputStream  支持中文,同樣java提供的java.util.zip.*.......對(duì)中文不支持面就是一個(gè)簡(jiǎn)單的例子,注 需要導(dǎo)入ant.jar支持包.

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

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;

    /**
     * 采用org.apache.tools.zip來進(jìn)行zip包的解壓縮,支持目錄嵌套和中文名
     * 
    @author xcp
     * 
    @version 1.0 Copyright (C), 2009 智能開發(fā)實(shí)驗(yàn)室 所有 Program Name:災(zāi)情信息管理系統(tǒng)
     *          Date: 2009-10-28 下午09:05:13
     
    */
    public class CompressFromZip {

        
    private void createDirectory(String directory, String subDirectory) {
            String dir[];
            File fl 
    = new File(directory);
            
    try {
                
    //如果解壓文件基本目錄結(jié)構(gòu)不存在,新建
                if (subDirectory == "" && fl.exists() != true){
                    
    //System.out.println("*******創(chuàng)建基本目錄結(jié)構(gòu)*******"+directory);
                    fl.mkdir();
                }
                
    //主要?jiǎng)?chuàng)建子目錄
                else if (subDirectory != "") {
                    dir 
    = subDirectory.replace('\\''/').split("/");
                    
    for (int i = 0; i < dir.length; i++) {
                        File subFile 
    = new File(directory + File.separator + dir[i]);
                        
    if (subFile.exists() == false){
                            
    //System.out.println("*******創(chuàng)建子目錄*******"+directory + File.separator + dir[i]);
                            subFile.mkdir();
                        }
                        directory 
    += File.separator + dir[i];
                    }
                }
            } 
    catch (Exception ex) {
                System.out.println(ex.getMessage());
            }
        }

        @SuppressWarnings(
    "unchecked")
        
    public void unZip(String zipFileName, String outputDirectory)
                
    throws Exception {
            
    try {
                org.apache.tools.zip.ZipFile zipFile 
    = new org.apache.tools.zip.ZipFile(zipFileName);
                java.util.Enumeration e 
    = zipFile.getEntries();
                org.apache.tools.zip.ZipEntry zipEntry 
    = null;
                createDirectory(outputDirectory, 
    "");
                
    while (e.hasMoreElements()) {
                    zipEntry 
    = (org.apache.tools.zip.ZipEntry) e.nextElement();
                    System.out.println(
    "========== 解壓 ========== " + zipEntry.getName());
                    
    //判斷是否為一個(gè)文件夾
                    if (zipEntry.isDirectory()) {
                        String name 
    = zipEntry.getName().trim();
                        
    //因?yàn)楹竺鎺в幸粋€(gè)/,所有要去掉
                        name = name.substring(0, name.length() - 1);
                        File f 
    = new File(outputDirectory + File.separator + name);
                        
    if(!f.exists()){
                            f.mkdir();
                        }
                        
    //System.out.println("*******創(chuàng)建根目錄*******" + outputDirectory    + File.separator + name);
                    } else {
                        String fileName 
    = zipEntry.getName();
                        fileName 
    = fileName.replace('\\''/');
                        
                        
    //判斷子文件是否帶有目錄,有創(chuàng)建,沒有寫文件
                        if (fileName.indexOf("/"!= -1){
                            createDirectory(outputDirectory, fileName.substring(
    0,fileName.lastIndexOf("/")));
                            fileName 
    = fileName.substring(fileName.lastIndexOf("/"+ 1);
                        }
                        
                        File f 
    = new File(outputDirectory + File.separator + zipEntry.getName());
                        f.createNewFile();
                        InputStream in 
    = zipFile.getInputStream(zipEntry);
                        FileOutputStream out 
    = new FileOutputStream(f);

                        
    byte[] by = new byte[1024];
                        
    int c;
                        
    while ((c = in.read(by)) != -1) {
                            out.write(by, 
    0, c);
                        }
                        in.close();
                        out.close();
                        
                    }
                }
            } 
    catch (Exception ex) {
                System.out.println(ex.getMessage());
            }
            System.out.println(
    "^^^^^^^^^^ 解壓完成 ^^^^^^^^^^");
        }

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



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


    Feedback

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

    2009-11-04 14:50 by 梁章坪
    有用工具,摘下來了。不建議把!
    謝謝!

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

    2009-11-04 21:48 by xcp
    @梁章坪
    沒事得.大家相互學(xué)習(xí).
    主站蜘蛛池模板: 亚洲国产乱码最新视频| 在线永久免费的视频草莓| 亚洲熟妇无码一区二区三区| 亚洲中文字幕不卡无码| 在线a人片天堂免费观看高清| 久久久久国产精品免费网站| 国产午夜亚洲精品不卡电影| 亚洲一区精彩视频| 亚洲国产高清美女在线观看| 亚洲AV无码一区二区乱孑伦AS| 免费在线观看你懂的| 日韩激情淫片免费看| 操美女视频免费网站| 国产福利在线免费| 7723日本高清完整版免费| 一级毛片在线免费看| 亚洲精品免费在线观看| 暖暖免费日本在线中文| 国产在线观a免费观看| 一级做a免费视频观看网站| 国产亚洲视频在线观看网址| 亚洲gay片在线gv网站| 亚洲一区二区无码偷拍| 亚洲日本va在线观看| 亚洲日韩国产精品乱-久| 亚洲av专区无码观看精品天堂| 亚洲国产成人久久综合一区| 亚洲精品网站在线观看你懂的| 亚洲精品自拍视频| 亚洲人成网www| 亚洲精品在线电影| 亚洲国产成人手机在线电影bd| 久久精品国产亚洲av麻豆蜜芽| 亚洲av乱码一区二区三区| 亚洲色在线无码国产精品不卡| 亚洲综合av一区二区三区不卡| 日本亚洲欧美色视频在线播放| 国产青草亚洲香蕉精品久久| 黄色a三级免费看| 丝袜足液精子免费视频| 久久99热精品免费观看牛牛|