`
lzstone
  • 浏览: 92635 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

java对zip文件进行解压并取出文件的名称

    博客分类:
  • java
阅读更多

1、先用JDK的类进行ZIP文件解压

    public List releaseWinZIPByList(String zipPath, String serverPath) {

        //zipPath为需要解压的zip文件
        //serverPath为解压后文件的存放路径
        List list = null;
        ZipInputStream in = null;
        FileOutputStream os = null;
        try {
            in = new ZipInputStream(new FileInputStream(zipPath));
            ZipEntry entry = null;
            while ((entry = in.getNextEntry()) != null) {
                String entryName = entry.getName();
                if (entry.isDirectory()) {
                    File file = new File(serverPath + File.separator + entryName);
                    file.mkdirs();
                } else {
                    os = new FileOutputStream(serverPath + File.separator + entryName);
                    int bytesRead = 0;
                    while ((bytesRead = in.read()) != -1) {
                        os.write(bytesRead);
                    }
                }// 未取值
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            Log4J.logWarn(e.getMessage());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log4J.logWarn(e.getMessage());
        }
        return list;
    }

    JDK的解压的字符集只支持ISO-8859-1,所以说在解压的时候出现中文的地方会出现异常,可以采取先把文件转换成UUID的编码名称,当然这是没有业务需求的情况下!

2、利用ant解压文件

   public static void releaseZipFileList(String zipPath, String serverPath)
            throws Exception {
        //zipPath为需要解压的zip文件
        //serverPath为解压后文件的存放路径
        ZipFile zipFile = new ZipFile(zipPath);
        Enumeration e = zipFile.getEntries();
        org.apache.tools.zip.ZipEntry zipEntry = null;
        while (e.hasMoreElements()) {
            zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();
            String entryName = zipEntry.getName();
            String fileNames[] = entryName.split("/");//读取文件集合
            int length = fileNames.length;
            String path = serverPath;
            for (int it = 0; it < length; it++) {
                if (it < length - 1) {
                    path += fileNames[it] + "/";
                    new File(path).mkdir();
                } else { // 读取最后的一个文件
                    if (entryName.endsWith("/")) { // 为目录,则创建文件夹
                        new File(serverPath + entryName).mkdir();
                    } else {
                        InputStream in = zipFile.getInputStream(zipEntry);
                        OutputStream os = new FileOutputStream(new File(
                                serverPath + entryName));
                        byte[] buf = new byte[1024];
                        int len;
                        while ((len = in.read(buf)) > 0) {
                            os.write(buf, 0, len);
                        }
                        in.close();
                        os.close();
                    }
                }
            }
        }
        zipFile.close();
    }

利用ant挤压可以支持中文,但是效率不高,有需要的时候可以用,用到的类在ant包中

 

分享到:
评论

相关推荐

    java代码利用svnkit操作svn导出某版本或多个版本修改的文件

    利用svnkit操作svn,实现对版本修改文件的导出,可以导出多个版本,.java文件将会在本地取出.class文件,导出后压缩成压缩包,主要用于服务器上的资源更新,不需要开发人员去找到对应的.class文件或其他文件压缩然后...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    JAVA上百实例源码以及开源项目

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包4

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包3

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    JAVA上百实例源码以及开源项目源代码

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包2

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...

    memcached1

    我们将java_memcached-release_1.6.zip解压后的目录中的java_memcached-release_1.6.jar文件复制到java项目的lib目录下,然后我们来编写代码,比如我提供的一个应用类如下: package utils.cache; import java....

    SmileAlfred#CollectionsFramework#1.快速使用1

    xUtils快速使用说明导入依赖使用Gradle构建时添加以下依赖即可:如果使用eclipse可以 点击这里下载aar文件, 然后用zip解压, 取出jar包和

    蓝丽留言版

    既然看到了本帮助文件,那相信此时您已将本系统压缩包(rar,zip)解压 首先,请确认您的服务器操作系统支持运行Asp.net,IE版本在5.5以上,或者您有远程虚拟主机 若您的操作系统不支持Asp.net,那请你先安装,如何安装请...

    xUtils3.3.6源码

    如果使用eclipse可以 点击这里下载aar文件, 然后用zip解压, 取出jar包和so文件. 添加配置混淆设置 region for xUtils -keepattributes Signature,Annotation -keep public class org.xutils.** { public protected ;...

    易语言程序免安装版下载

    符号重命名程序(resym.exe)增加对.obj文件的支持,并更新了文档(sdk\static_docs)。 3. 编译生成安装软件时已支持打包静态编译后的程序,但需事先静态编译出该程序。 4. 升级加密狗驱动程序,增加了对 Windows 7,...

Global site tag (gtag.js) - Google Analytics