`
a11632
  • 浏览: 7856 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

java压缩文件夹或文件

阅读更多

package com.proxy;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipUtil {
 public enum zipEnum {
  byteLength(1024 * 2), srcPath("d:/快盘-学习"), objPath("d:/"), zipName(
    "ac.zip");
  zipEnum(int intData) {
   this.intData = intData;
  }

  zipEnum(String strData) {
   this.strData = strData;
  }

  public int getIntData() {
   return intData;
  }

  public String getStrData() {
   return strData;
  }

  private int intData = -1;
  private String strData = null;
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  zipDir(zipEnum.srcPath.getStrData(), zipEnum.objPath.getStrData(),
    zipEnum.zipName.getStrData());
 }
 /**
  * @判断输入的地址是文件名还是文件夹名
  * @param srcPath:被压缩的文件或文件夹(源文件)
  * @param objPath:压缩至某个路径
  * @param zipName:压缩文件名
  */
 public static void zipDir(String srcPath, String objPath, String zipName) {
  if (srcPath == null) {
   return;
  }
  File fileIn = new File(srcPath);
  File fileOut = new File(objPath, zipName);
  ZipOutputStream zipOut = null;
  try {
   zipOut = new ZipOutputStream(new FileOutputStream(fileOut));
   //判断源文件是否是文件夹
   if (!fileIn.isAbsolute()) {
    //如果是文件
    if (fileIn.isFile()) {
     zipFile("", fileIn, zipOut);
    } else {
     System.out.println("输入的源文件地址错误");
    }
   } else {
    //如果是文件夹
    zipDirFile("", fileIn, zipOut);
   }
  } catch (FileNotFoundException e) {
   System.out.println("目标文件错误");
   e.printStackTrace();
  } finally {
   if (zipOut != null) {
    try {
     zipOut.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }

 }
 /**
  * @压缩文件
  * @param relName:压缩包内的路径位置
  * @param fileIn:被压缩的文件
  * @param zipOut:压缩输出
  */
 private static void zipFile(String relName, File fileIn,
   ZipOutputStream zipOut) {
  //relName + fileIn.getName()类似于java文件夹下面java.txt文件这样的路径
  ZipEntry zipEntry = new ZipEntry(relName + fileIn.getName());
  FileInputStream fileSteam = null;
  byte[] buf = new byte[zipEnum.byteLength.getIntData()];
  int num = 0;
  try {
   fileSteam = new FileInputStream(fileIn);
   zipOut.putNextEntry(zipEntry);
   while ((num = fileSteam.read(buf)) != -1) {
    zipOut.write(buf, 0, num);
   }
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (fileSteam != null) {
    try {
     fileSteam.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   if (zipEntry != null) {
    zipEntry.clone();
   }
  }
 }
 /**
  * @遍历文件夹中的文件或文件夹
  * @param relName:压缩包内的路径位置
  * @param fileIn:被压缩的文件
  * @param zipOut:压缩输出
  */
 private static void zipDirFile(String relName, File fileIn,
   ZipOutputStream zipOut) {
  //如果是文件
  if (fileIn.isFile()) {
   zipFile(relName, fileIn, zipOut);
  } else {
   String relNames = relName + fileIn.getName() + File.separator;
   File[] files = fileIn.listFiles();
   for (File fi : files) {
    zipDirFile(relNames, fi, zipOut);
   }
   files.clone();
  }
 }
}

1
0
分享到:
评论

相关推荐

    java压缩文件以及文件夹

    本文将深入探讨如何使用Java来处理压缩文件,特别是针对标题提及的“java压缩文件以及文件夹”。我们将主要关注`ZipCompressor.java`这个类,它是实现文件和文件夹压缩的核心工具。 首先,让我们了解`java.util.zip...

    JAVA压缩文件夹(压缩文件)

    JAVA实现的压缩文件夹、文件的程序,使用的时候,请把代码中的package语句改成相应的包名,或者直接删除,使用默认的包名。

    运用java压缩文件夹并备份至目标文件夹

    以下是一个简单的示例,展示如何使用Java压缩一个文件夹: ```java import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.zip.ZipEntry; ...

    Java代码 可以压缩文件夹到指定目录和指定名称,将文件或者文件夹中的文件转成base64格式

    在Java编程语言中,压缩文件夹到指定目录和指定名称是一项常见的任务,这通常涉及到对文件系统的操作和使用压缩库。Java提供了多种方法来实现这一功能,比如使用内置的`java.util.zip`包或者第三方库如Apache ...

    java压缩文件夹

    java压缩文件夹,文件夹名称和文件名称支持中文

    java将文件夹压缩成zip,解压zip压缩包

    本篇文章将详细探讨如何使用Java内置的IO流来实现文件夹的zip压缩以及zip压缩包的解压,无需依赖其他的第三方库如Apache Commons IO或JavaZip。 ### 文件夹压缩成ZIP 首先,我们需要理解如何将一个文件夹及其内容...

    java压缩文件代码,压缩(文件) (文件夹) (文件和文件夹混合的)超完整版

    java压缩文件的程序代码,可以压缩单个文件夹,单个标准文件,多个标准文件 多个文件夹,以及文件夹和文件混合的压缩代码

    Java实现对文件夹的加密码压缩(绝对可用)

    JAVA实现对文件夹“加密码压缩” 此资源解压后为一个文件夹,就是一个package包 (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题 不...

    Java实现压缩解压缩文件和文件夹(附源码)

    Java实现压缩解压缩文件和文件夹(附源码) zip unzip 压缩 解压缩

    .net采用SharpZipLib压缩文件夹及文件(类及库文件)

    在.NET开发环境中,有时我们需要对文件或文件夹进行压缩处理,以便于存储、传输或备份。SharpZipLib是一个流行的开源库,它为.NET开发者提供了强大的ZIP和GZip压缩功能。本文将详细介绍如何利用SharpZipLib库来实现...

    java 下载文件 压缩且删除源文件(支持文件夹与文件)

    2、指定文件夹(文件夹中必须有一个文件),程序会自动的压缩文件为 zip,然后下载删除源文件与压缩文件。 3、可以指定文件都为最后生成为zip文件下载,且删除源文件。 1、压缩文件或者目录(只是压缩不删除):...

    java 打包文件(文件夹)为 zip压缩包 java 压缩文件

    在Java编程环境中,打包文件或文件夹到zip压缩包是一项常见的任务,这通常涉及到I/O操作和文件处理。`ZIPUtil`可能是一个自定义的工具类,用于简化这个过程。以下是一些关于如何在Java中实现这个功能的关键知识点: ...

    使用Java API进行tar.gz文件及文件夹压缩解压缩.docx

    ame()); tOut.putArchiveEntry(tarEntry);...通过引入该库,我们可以轻松地在 Java 程序中实现文件和文件夹的压缩与解压缩功能。在实际开发中,注意错误处理、资源管理以及安全性等方面,以确保程序的健壮性和安全性。

    zip解压缩文件文件夹都可以(java)

    zip解压缩文件文件夹都可以,代码清晰,注释多。非常容易看懂

    java实现对文件或文件夹的压缩和解压缩

    在Java编程中,有时我们需要对文件或文件夹进行压缩和解压缩操作,这在数据传输、备份或存储优化等场景中十分常见。Apache提供了一个强大的第三方库——Commons Compress,它可以帮助我们处理各种格式的压缩文件,...

    java代码实现单个或多个文件压缩成rar包

    java代码实现单个或多个文件压缩成rar包,本地要安装winRar插件。

    JAVA实现对文件夹“加密码压缩”

    JAVA实现对文件夹“加密码压缩” 此资源解压后为一个文件夹,就是一个package包 (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题...

    java解压缩文件文件夹

    1. **创建ZipOutputStream**:这是用来将多个文件或文件夹打包成ZIP文件的关键。你可以通过继承`OutputStream`的类来创建它,通常是一个指向你要创建的ZIP文件的`FileOutputStream`。 ```java FileOutputStream fos...

    java实现多个文件压缩成rar压缩包

    ### Java 实现多个文件压缩成 RAR 压缩包 #### 背景与目的 在日常工作中,经常会遇到需要将多个文件压缩为一个压缩包的情况,以便于存储、传输或备份。Java 作为一种广泛使用的编程语言,在处理文件操作方面提供了...

    windows 下java调用winrar压缩文件为rar 格式

    在Windows环境下,使用Java进行程序开发时,有时我们需要对文件进行压缩操作,比如将文件压缩成RAR格式。这个过程涉及到Java的本地方法调用、文件I/O操作以及第三方库的集成。下面我们将详细探讨如何在Java中实现这...

Global site tag (gtag.js) - Google Analytics