zoukankan      html  css  js  c++  java
  • Java实现将文件或者文件夹压缩成zip

    Java实现将文件或者文件夹压缩成zip的工具类
    private void compress(File sourceDir, String baseDir, ZipOutputStream zos) {
        if (!sourceDir.exists()) {
    throw new Exception("压缩失败, 源文件夹不存在");
    }
    File[] files = sourceDir.listFiles();
    if (files == null || files.length == 0) {
    throw new Exception("压缩失败, 源文件夹不存在");
    }
    BufferedInputStream bis = null;
    byte[] buff = new byte[1024 * 10];
    FileInputStream fis = null;
    try {
    for (File file : files) {
    String fName = file.getName();
    if (file.isFile()) {
    ZipEntry zipEntry = new ZipEntry(baseDir + fName);
    zos.putNextEntry(zipEntry);
    fis = new FileInputStream(file);
    bis = new BufferedInputStream(fis, 1024 * 10);
    int length;
    while ((length = bis.read(buff, 0, 1024 * 10)) != -1) {
    zos.write(buff, 0, length);
    }
    fis.close();
    file.delete();
    } else if (file.isDirectory()) {
    compress(file, baseDir + fName + "/", zos);
            //压缩完成后删除源文件,加入下面的语句
    file.delete();
    }
    }
    sourceDir.delete();
    } catch (Exception e) {
          e.printStackTrace();
    } finally {
            try {
    if (null != bis) {
    bis.close();
    }
    if (null != fis) {
    fis.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
        }
    }
    }
    知识改变命运,代码改变生活。
  • 相关阅读:
    JMM、asifserial语义、happensbefore模型
    jvm内存溢出实践
    垃圾回收和GC算法
    jvm运行时数据区域
    实现加锁的消费者和生产者模型
    jvm监控工具小结
    HotSpot对象
    java常用垃圾收集器
    字面量, 符号引用与直接引用
    常用线程安全的队列
  • 原文地址:https://www.cnblogs.com/xubb/p/8486943.html
Copyright © 2011-2022 走看看