// Path: src/main/java/com/wind/common/Constants.java
// public interface Constants {
// 
//     /**********************************************分隔符常量************************************************/
// 
//     String POINT_STR = ".";
// 
//     String BLANK_STR = "";
// 
//     String SPACE_STR = " ";
// 
//     String NEWLINE_STR = "\n";
// 
//     String SYS_SEPARATOR = File.separator;
// 
//     String FILE_SEPARATOR = "/";
// 
//     String BRACKET_LEFT = "[";
// 
//     String BRACKET_RIGHT = "]";
// 
//     String UNDERLINE = "_";
// 
//     String MINUS_STR = "-";
// 
// 
// 
//     /**********************************************编码格式************************************************/
// 
//     String UTF8 = "UTF-8";
// 
// 
//     /**********************************************文件后缀************************************************/
// 
//     String EXCEL_XLS = ".xls";
// 
//     String EXCEL_XLSX = ".xlsx";
// 
//     String IMAGE_PNG = "png";
// 
//     String IMAGE_JPG = "jpg";
// 
//     String FILE_ZIP = ".zip";
//     String FILE_GZ = ".gz";
// 
// 
//     /**********************************************io流************************************************/
// 
//     int BUFFER_1024 = 1024;
// 
//     int BUFFER_512 = 512;
// 
//     String USER_DIR = "user.dir";
// 
//     /**********************************************tesseract for java语言字库************************************************/
// 
//     String ENG = "eng";
// 
//     String CHI_SIM = "chi_sim";
// 
// 
//     /**********************************************opencv************************************************/
//     String OPENCV_LIB_NAME_246 = "libs/x64/opencv_java246";
// 
//     String OPENCV_LIB_NAME_330 = "libs/x64/opencv_java330";
// }
// 
// Path: src/main/java/com/wind/common/IoUtil.java
// public class IoUtil {
// 
//     /**
//      * 关闭字节输入流
//      * @param in
//      */
//     public static void close(InputStream in){
//         if(in != null){
//             try {
//                 in.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
// 
//     /**
//      * 关闭字节输入输出流
//      * @param in
//      * @param out
//      */
//     public static void close(InputStream in, OutputStream out){
//         close(in);
//         close(out);
//     }
// 
//     /**
//      * 关闭字符输入流
//      * @param reader
//      */
//     public static void close(Reader reader){
//         if(reader != null){
//             try {
//                 reader.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭字符输出流
//      * @param writer
//      */
//     public static void close(Writer writer){
//         if(writer != null){
//             try {
//                 writer.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭image输入流
//      * @param iis
//      */
//     public static void close(ImageInputStream iis){
//         if(iis != null){
//             try {
//                 iis.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 批量关闭字节输入流
//      * @param ins
//      */
//     public static void close(InputStream... ins){
//         Arrays.asList(ins).parallelStream().forEach(IoUtil::close);
//     }
// 
//     /**
//      * 批量关闭字节输出流
//      * @param outs
//      */
//     public static void close(OutputStream... outs){
//         Arrays.asList(outs).parallelStream().forEach(IoUtil::close);
//     }
// 
//     /**
//      * 关闭字节输出流
//      * @param out
//      */
//     public static void close(OutputStream out){
//         if(out != null){
//             try {
//                 out.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭XMLWriter输出流
//      * @param out
//      */
//     public static void close(XMLWriter out){
//         if(out != null){
//             try {
//                 out.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// }


import com.wind.common.Constants;
import com.wind.common.IoUtil;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
package com.wind.compress;


/**
 * 通过Java的Zip输入输出流实现压缩和解压文件
 * @author wind
 */
public class ZipUtil {

    /**
     * 压缩文件
     * 若压缩文件，请指定目标文件目录和目标文件名
     * @param source 源文件路径
     * @param target 目标文件路径
     */
    public static void zip(String source, String target) {
        File sourceFile = new File(source);
        if (sourceFile.exists()) {
            File targetFile = new File(target);
            if(targetFile.isDirectory()){
// Path: src/main/java/com/wind/common/Constants.java
// public interface Constants {
// 
//     /**********************************************分隔符常量************************************************/
// 
//     String POINT_STR = ".";
// 
//     String BLANK_STR = "";
// 
//     String SPACE_STR = " ";
// 
//     String NEWLINE_STR = "\n";
// 
//     String SYS_SEPARATOR = File.separator;
// 
//     String FILE_SEPARATOR = "/";
// 
//     String BRACKET_LEFT = "[";
// 
//     String BRACKET_RIGHT = "]";
// 
//     String UNDERLINE = "_";
// 
//     String MINUS_STR = "-";
// 
// 
// 
//     /**********************************************编码格式************************************************/
// 
//     String UTF8 = "UTF-8";
// 
// 
//     /**********************************************文件后缀************************************************/
// 
//     String EXCEL_XLS = ".xls";
// 
//     String EXCEL_XLSX = ".xlsx";
// 
//     String IMAGE_PNG = "png";
// 
//     String IMAGE_JPG = "jpg";
// 
//     String FILE_ZIP = ".zip";
//     String FILE_GZ = ".gz";
// 
// 
//     /**********************************************io流************************************************/
// 
//     int BUFFER_1024 = 1024;
// 
//     int BUFFER_512 = 512;
// 
//     String USER_DIR = "user.dir";
// 
//     /**********************************************tesseract for java语言字库************************************************/
// 
//     String ENG = "eng";
// 
//     String CHI_SIM = "chi_sim";
// 
// 
//     /**********************************************opencv************************************************/
//     String OPENCV_LIB_NAME_246 = "libs/x64/opencv_java246";
// 
//     String OPENCV_LIB_NAME_330 = "libs/x64/opencv_java330";
// }
// 
// Path: src/main/java/com/wind/common/IoUtil.java
// public class IoUtil {
// 
//     /**
//      * 关闭字节输入流
//      * @param in
//      */
//     public static void close(InputStream in){
//         if(in != null){
//             try {
//                 in.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
// 
//     /**
//      * 关闭字节输入输出流
//      * @param in
//      * @param out
//      */
//     public static void close(InputStream in, OutputStream out){
//         close(in);
//         close(out);
//     }
// 
//     /**
//      * 关闭字符输入流
//      * @param reader
//      */
//     public static void close(Reader reader){
//         if(reader != null){
//             try {
//                 reader.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭字符输出流
//      * @param writer
//      */
//     public static void close(Writer writer){
//         if(writer != null){
//             try {
//                 writer.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭image输入流
//      * @param iis
//      */
//     public static void close(ImageInputStream iis){
//         if(iis != null){
//             try {
//                 iis.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 批量关闭字节输入流
//      * @param ins
//      */
//     public static void close(InputStream... ins){
//         Arrays.asList(ins).parallelStream().forEach(IoUtil::close);
//     }
// 
//     /**
//      * 批量关闭字节输出流
//      * @param outs
//      */
//     public static void close(OutputStream... outs){
//         Arrays.asList(outs).parallelStream().forEach(IoUtil::close);
//     }
// 
//     /**
//      * 关闭字节输出流
//      * @param out
//      */
//     public static void close(OutputStream out){
//         if(out != null){
//             try {
//                 out.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// 
//     /**
//      * 关闭XMLWriter输出流
//      * @param out
//      */
//     public static void close(XMLWriter out){
//         if(out != null){
//             try {
//                 out.close();
//             } catch (IOException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
// }


// Path: src/main/java/com/wind/compress/ZipUtil.java
import com.wind.common.Constants;
import com.wind.common.IoUtil;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

package com.wind.compress;


/**
 * 通过Java的Zip输入输出流实现压缩和解压文件
 * @author wind
 */
public class ZipUtil {

    /**
     * 压缩文件
     * 若压缩文件，请指定目标文件目录和目标文件名
     * @param source 源文件路径
     * @param target 目标文件路径
     */
    public static void zip(String source, String target) {
        File sourceFile = new File(source);
        if (sourceFile.exists()) {
            File targetFile = new File(target);
            if(targetFile.isDirectory()){
                String zipName = sourceFile.getName() + Constants.FILE_ZIP;