• FileToZip 文件压缩工具类


    public class FileToZip {

    /**
     * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
     * @param sourceFilePath :待压缩的文件路径
     * @param zipFilePath :压缩后存放路径
     * @param fileName :压缩后文件的名称
     * @return
     */
    public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName){
          boolean flag = false;
          File sourceFile = new File(sourceFilePath);
          FileInputStream fis = null;
          BufferedInputStream bis = null;
          FileOutputStream fos = null;
          ZipOutputStream zos = null;
          
          if(sourceFile.exists() == false){
               System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");
          }else{
               try {
                    File zipFile = new File(zipFilePath + "/" + fileName +".zip");
                    if(zipFile.exists()){
                          System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件.");
                    }else{
                          File[] sourceFiles = sourceFile.listFiles();
                          if(null == sourceFiles || sourceFiles.length<1){
                               System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩.");
                          }else{
                               fos = new FileOutputStream(zipFile);
                               zos = new ZipOutputStream(new BufferedOutputStream(fos));
                               byte[] bufs = new byte[1024*10];
                               for(int i=0;i<sourceFiles.length;i++){
                                    //创建ZIP实体,并添加进压缩包
                                    ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());
                                    zos.putNextEntry(zipEntry);
                                    //读取待压缩的文件并写进压缩包里
                                    fis = new FileInputStream(sourceFiles[i]);
                                    bis = new BufferedInputStream(fis, 1024*10);
                                    int read = 0;
                                    while((read=bis.read(bufs, 0, 1024*10)) != -1){
                                         zos.write(bufs,0,read);
                                    }
                               }
                               flag = true;
                          }
                    }
               } catch (FileNotFoundException e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
               } catch (IOException e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
               } finally{
                    //关闭流
                    try {
                          if(null != bis) bis.close();
                          if(null != zos) zos.close();
                    } catch (IOException e) {
                          e.printStackTrace();
                          throw new RuntimeException(e);
                    }
               }
          }
          return flag;
    }
    
    public static void main(String[] args){
          String sourceFilePath = "D:\test\202010";
          String zipFilePath = "D:\test\202010";
          String fileName = "打包测试";
          boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);
          if(flag){
               System.out.println("文件打包成功!");
          }else{
               System.out.println("文件打包失败!");
          }
    }
    

    }

  • 相关阅读:
    Android文件操作总结
    SQLite优化方法
    Android之TabHost布局
    Android简单数据存储SharedPreferences
    Android之SharedPreferences权限
    Android布局大全
    context理解
    Android网络连接之HttpURLConnection和HttpClient
    Android之ContentProvider总结
    Intent的简介以及属性详解
  • 原文地址:https://www.cnblogs.com/jianzhixuan/p/13878798.html
Copyright © 2020-2023  润新知