zoukankan      html  css  js  c++  java
  • Java实现压缩与解压缩

    import java.io.*;                                                                       
    import java.util.*;                                                                     
    import java.util.zip.ZipOutputStream;                                                   
    import java.util.zip.ZipEntry;                                                          
    import java.util.zip.ZipFile;  
    
    public class ZipUtil {                                                                 
                                                                                           
        /**                                                                                
         * 压缩文件                                                                            
         *                                                                                 
         * @param srcfile File[] 需要压缩的文件列表                                                 
         * @param zipfile File 压缩后的文件                                                      
         */                                                                                
        public static void zipFiles(List<File> srcfile, File zipfile) {                    
            byte[] buf = new byte[1024];                                                   
            try {                                                                          
                // Create the ZIP file                                                     
                ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
                // Compress the files                                                      
                for (int i = 0; i < srcfile.size(); i++) {                                 
                    File file = srcfile.get(i);                                            
                    FileInputStream in = new FileInputStream(file);                        
                    // Add ZIP entry to output stream. 
                    out.putNextEntry(new ZipEntry(file.getName()));                        
                    // Transfer bytes from the file to the ZIP file                        
                    int len;                                                               
                    while ((len = in.read(buf)) > 0) {                                     
                        out.write(buf, 0, len);                                            
                    }                                                                      
                    // Complete the entry                                                  
                    out.closeEntry();                                                      
                    in.close();                                                            
                }                                                                          
                // Complete the ZIP file                                                   
                out.close();                                                               
            } catch (IOException e) {                                                      
                e.printStackTrace();                               
            }                                                                              
        }                                                                                  
                                                                                           
        /**                                                                                
         * 解压缩                                                                             
         *                                                                                 
         * @param zipfile File 需要解压缩的文件                                                    
         * @param descDir String 解压后的目标目录                                                  
         */                                                                                
        public static void unZipFiles(File zipfile, String descDir) {                      
            try {                                                                          
                // Open the ZIP file                                                       
                ZipFile zf = new ZipFile(zipfile);                                         
                for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {     
                    // Get the entry name                                                  
                    ZipEntry entry = ((ZipEntry) entries.nextElement());                   
                    String zipEntryName = entry.getName();                                 
                    InputStream in = zf.getInputStream(entry);                             
                    // System.out.println(zipEntryName);                                   
                    OutputStream out = new FileOutputStream(descDir + zipEntryName);       
                    byte[] buf1 = new byte[1024];                                          
                    int len;                                                               
                    while ((len = in.read(buf1)) > 0) {                                    
                        out.write(buf1, 0, len);                                           
                    }                                                                      
                    // Close the file and stream                                           
                    in.close();                                                            
                    out.close();                                                           
                }                                                                          
            } catch (IOException e) {
                e.printStackTrace();
            }                                                                              
        } 
        
        public static void main(String[] args){
            List srcfile = new ArrayList();
            srcfile.add(new File("D:/111.xls"));   
            //将文件打包成zip包   
            File zipfile = new File("D:/111.zip");   
            ZipUtil.zipFiles(srcfile, zipfile);
        }
    }                                                                                      
  • 相关阅读:
    克服 iOS HTML5 音频的局限
    oracle__删除重复记录__三种方法及总结(转载百度文库)
    Oracle 字符集
    无法通过网页进入em
    Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
    正则表达式30分钟入门教程
    linux下安装jdk
    QTP相关书籍
    假的数论gcd,真的记忆化搜索(Codeforce 1070- A. Find a Number)
    搜索基础_HDU1312_dfs_递归+stack实现+bfs_queue实现
  • 原文地址:https://www.cnblogs.com/zhaoyhBlog/p/6256097.html
Copyright © 2011-2022 走看看