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);
        }
    }                                                                                      
  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/zhaoyhBlog/p/6256097.html
Copyright © 2011-2022 走看看