java 解压

    public static void parseZIP(String path,String filename,String resourcePath){
        System.out.println("filename:"+filename);
        String filename0 = filename.substring(0, filename.lastIndexOf("."));
        createFile(filename0);
        String pathDir = createDirs(filename0,resourcePath);

        try {
            // destination folder to extract the contents
            byte[] buf = new byte[1024];
            ZipInputStream zipinputstream = null;
            ZipEntry zipentry;
            zipinputstream = new ZipInputStream(new FileInputStream(path));
            zipentry = zipinputstream.getNextEntry();
            while (zipentry != null) {

                // for each entry to be extracted
                String entryName = zipentry.getName();

//                System.out.println(entryName);

                int n;
                FileOutputStream fileoutputstream;
//                File newFile = new File(entryName);

                if (!zipentry.isDirectory()) {
//                    System.out.println("File to be extracted....." + entryName);
                    fileoutputstream = new FileOutputStream(pathDir+File.separator+entryName);
                    while ((n = zipinputstream.read(buf, 0, 1024)) > -1) {
                        fileoutputstream.write(buf, 0, n);
                    }
                    fileoutputstream.close();
                }

                zipinputstream.closeEntry();
                zipentry = zipinputstream.getNextEntry();
            }
            zipinputstream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //解析 Rar文件  放到指定的目录 环境
    public static void parseRAR(String path,String filename,String resourcePath) {

        if(!path.toLowerCase().endsWith(".rar")){

        }

        String filename0 = filename.substring(0, filename.indexOf(".rar"));
        createFile(filename0);
        String pathDir = createDirs(filename0,resourcePath);
        FileOutputStream  out = null;
        Archive a = null;

        try {
            a = new Archive(new File(path));

            FileHeader fh = a.nextFileHeader();

            while(fh != null){

                String name = fh.getFileNameString();
                out = new FileOutputStream(new File(pathDir+File.separator+name));
                a.extractFile(fh, out);
                fh = a.nextFileHeader();
                out.close();
            }

            a.close();
        } catch (RarException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }

        //System.out.println("--------------end--------------");
    }

    //解析Rar文件 得到里面配置文件 并得到配置文件名称 :包名
    private static  String  getPackageName(String path){

        if(!path.toLowerCase().endsWith(".rar")){

        }
        BufferedOutputStream  out = null;
        String retValue = "";
        Archive a = null;
        try {
            a = new Archive(new File(path));
            FileHeader fh = a.nextFileHeader();
            while(fh != null){
                if(!fh.isDirectory()&&fh.getFileNameString().endsWith(".txt")){

                    retValue = fh.getFileNameString();
                    retValue = retValue.substring(retValue.indexOf(File.separator)+1,retValue.lastIndexOf(".txt"));
                    out = new BufferedOutputStream(new FileOutputStream(new File(ParseConfig.getValue("configFiles")+File.separator+retValue+".txt")));
                    a.extractFile(fh, out);
                    out.flush();
                    out.close();
                    break;
                }
                fh = a.nextFileHeader();
            }

            a.close();
        } catch (RarException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return retValue;
    }
    
时间: 2024-12-21 15:02:59

java 解压的相关文章

使用JAVA解压加密的中文ZIP压缩包

近来项目中需要对ZIP压缩包解压,然后将解压后的内容存放到指定的目录下. 该压缩包的特性: 使用标准的zip压缩格式(压缩算法没有深入探究) 压缩包中带有目录并且目录名称是中文 压缩时加了密码 因为jre中自带的java.util.zip.*包不支持中文及加密压缩,所以选择使用zip4j包. 下面是解压的实现代码: 1 public class UnZip { 2 private final int BUFF_SIZE = 4096; 3 4 /* 5 获取ZIP文件中的文件名和目录名 6 */

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi

JAVA解压ZIP文件

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import

Java 解压文件

需要 import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; 对文件进行解压操作 ant.jar 的 下载地址 http://download.csdn.net/detail/qq490691606/7935909 maven中的配置 <dependency> <groupId>com.sun</groupId> <artifactId>tools</arti

Java - 解压和打包Jar

解压和打包Jar 本文地址:http://blog.csdn.net/caroline_wendy 简介 1. 压缩包: jar cvf filename.jar a.class b.class: 压缩指定文件: jar cvf weibosdkcore.jar *: 全部压缩: 2. 解压包: jar xvf test.jar 详解 jar命令有生成.查看.更新.解开jar包的作用,包含META-INF/MANIFEST.MF文件. 它是jar包生成的时候,自动创建的,主要负责指定jar包的m

java解压zip压缩包

package com.spring.mvc.zip; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration;import java.util.zip.ZipEntry; import org.apache.tools.zip.ZipFile; public class zip {

【转】JAVA解压.TAR.Z及.ZIP文件

 解压.ZIP文件 package app.qdupr.Method; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile;

java 解压 zip 包并删除

需求是这样的,  在服务器上有 运营上传的zip 包,内容是用户的照片,我需要做的是 获取这些照片上传,并保存到 数据库. 这里面的 上传照片,保存数据库都不难,主要问题是解压zip包,和删除zip 包,以及 解压后的文件. 之前在网上找的解压的文件的代码,都存在同一个问题,就是解压之后,无法删除 zip 包.查百度说是 资源占用,可是我已经把所有的流都关闭了哇. 我把解压和删除分成两部分用 jUnit  测试:   第一次测试解压,并不删除包:第二次只删除包.我发现,解压方法和删除方法在同一个

Java解压文件

import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; public class Zip2File { /** * 创建目录

【java】 java 解压tar.gz读取内容

package com.xwolf.stat.util; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compr