zoukankan      html  css  js  c++  java
  • [转]JAVA实现文件压缩

    /**创建一个压缩文件,from为文件夹路径,to为创建好后压缩文件路径*/  
    public void CreateZip(String from,String to) throws IOException  
    {  
    List<File>list=getFiles(from);  
    ZipOutputStream out=new ZipOutputStream(new FileOutputStream(new File(to)));  
    for(File f:list)  
    {  
    InputStream in=new FileInputStream(f);  
    String name=getRelName(from,f);  
      
    ZipEntry en=new ZipEntry(new File(from).getName()+"/"+name);  
    en.setSize(f.length());  
      
    out.putNextEntry(en);  
    out.setComment("中文测试");  
      
      
    int len=0;  
    byte[]buffer=new byte[1024];  
    while(-1!=(len=in.read(buffer)))  
    {  
    out.write(buffer, 0, len);  
    }  
    in.close();  
    }  
    out.close();  
    }  
    /**获取文件的相对路径*/  
    private String getRelName(String from,File f) {  
    // TODO Auto-generated method stub  
    String a=f.getAbsolutePath().replace(from+"\", "");  
    a=a.replace("\", "/");  
    System.out.println(from+"---"+a);  
    return a;  
    }  
    /**获取路径下所有文件,包括文件夹下的*/  
    private List<File> getFiles(String sou)  
    {  
    List<File>list=new ArrayList<File>();  
    File f=new File(sou);  
    File files[]=f.listFiles();  
    for(File file:files)  
    {  
    if(file.isFile())  
    {  
    list.add(file);  
    }  
    else  
    {  
    list.addAll(getFiles(file.getPath()));  
    }  
    }  
    return list;  
    }
    

    ##########################################  

    转自:http://blog.csdn.net/liu149339750/article/details/7887701

    ##########################################

  • 相关阅读:
    sso单点登录
    mysql java写入时间少14小时
    mysql 时间
    mysql中timestamp的自动生成与更新
    centos7下用命令安装node&pm2
    腾讯蓝鲸资源分配
    Centos7 安装谷歌浏览器
    Ubuntu安装Apache 2.4.7常见问题解答
    Ubuntu常见服务启停
    LVM 'Can’t open /dev/sdb1 exclusively. Mounted filesystem?' Problem
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/4242458.html
Copyright © 2011-2022 走看看