• java解压文件


    private static final int buffer = 2048;
    private static final Logger logger = Logger.getLogger(Logger.class);
    /**
    * 解压Zip文件
    * @param path 文件目录
    */
    public static void unZip(String path)
    {
    int count = -1;
    String savepath = "";

    File file = null;
    InputStream is = null;
    FileOutputStream fos = null;
    BufferedOutputStream bos = null;

    savepath = path.substring(0, path.lastIndexOf(".")) + File.separator; //保存解压文件目录
    new File(savepath).mkdir(); //创建保存目录
    ZipFile zipFile = null;
    try
    {
    zipFile = new ZipFile(path,"gbk"); //解决中文乱码问题
    Enumeration<?> entries = zipFile.getEntries();

    while(entries.hasMoreElements())
    {
    byte buf[] = new byte[buffer];

    ZipEntry entry = (ZipEntry)entries.nextElement();

    String filename = entry.getName();
    boolean ismkdir = false;
    if(filename.lastIndexOf("/") != -1){ //检查此文件是否带有文件夹
    ismkdir = true;
    }
    filename = savepath + filename;

    if(entry.isDirectory()){ //如果是文件夹先创建
    file = new File(filename);
    file.mkdirs();
    continue;
    }
    file = new File(filename);
    if(!file.exists()){ //如果是目录先创建
    if(ismkdir){
    new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); //目录先创建
    }
    }
    file.createNewFile(); //创建文件

    is = zipFile.getInputStream(entry);
    fos = new FileOutputStream(file);
    bos = new BufferedOutputStream(fos, buffer);

    while((count = is.read(buf)) > -1)
    {
    bos.write(buf, 0, count);
    }
    bos.flush();
    bos.close();
    fos.close();

    is.close();
    }

    zipFile.close();

    }catch(IOException ioe){
    ioe.printStackTrace();
    }finally{
    try{
    if(bos != null){
    bos.close();
    }
    if(fos != null) {
    fos.close();
    }
    if(is != null){
    is.close();
    }
    if(zipFile != null){
    zipFile.close();
    }
    }catch(Exception e) {
    e.printStackTrace();
    }
    }
    }

  • 相关阅读:
    Hash
    字符串hash
    NOIp 2014解方程
    NOIp2014 寻找道路
    NOIp2013火柴排队
    用scanf("%d",)读入long long类型
    lis问题
    西江月·证明
    计算系数
    积木大赛&PLA-Postering
  • 原文地址:https://www.cnblogs.com/yizw/p/7992969.html
Copyright © 2020-2023  润新知