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

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

  • 相关阅读:
    防止重复点击
    刷新当前页面的几种方法
    PHP删除数组中空值
    json转化数组
    两个不能同时共存的条件orWhere查询
    SQLSTATE[42000]
    laravel一个页面两个表格分页处理
    Hash::make与Hash::check
    unbind()清除指定元素绑定效果
    二级联动
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/4242458.html
Copyright © 2011-2022 走看看