`
jamour
  • 浏览: 24839 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[ J2SE ] 文件压缩&解压缩

阅读更多

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

public class ZipFolder {

 OutputStream out;

 static ZipOutputStream zips;

 static InputStream in;

 private String dir;

 
 public OutputStream getOut() {
  return out;
 }

 public void setOut(OutputStream out) {
  this.out = out;
 }

 public String getDir() {
  return dir;
 }

 public void setDir(String dir) {
  this.dir = dir;
 }

 public void zipfile(String file) {

  try {
   int len = 0;
   byte[] buff = new byte[1024];
   in = new FileInputStream(file);
   zips.putNextEntry(new ZipEntry(file.substring(dir.length() + 2)));
   while ((len = in.read(buff)) != -1) {
    zips.write(buff, 0, len);
   }

  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

 }

 public void folder(String folder) {
  File f = new File(folder);
  File[] fw = f.listFiles();
  for (int i = 0; i < fw.length; i++) {
   if (fw[i].isDirectory()) {
    System.out.println("|" + fw[i]);
    folder(fw[i].toString());
   } else {
    System.out.println("| " + fw[i].toString());
    zipfile(fw[i].toString());
   }
  }
  
 }
 //  压缩文件 
 private void zipIn(String fileIn,String zipOut) {
  ZipFolder is = new ZipFolder();
  OutputStream out1;
  try {
   out1 = new FileOutputStream(zipOut);
   is.setOut(out1);
   zips = new ZipOutputStream(is.getOut());
   is.setDir(fileIn);
   // 调用 folder
   is.folder(fileIn);
   zips.close();
   in.close();
   is.getOut().close();

  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println("| 压缩结束.... ");
  
 }

 private void UnZip(ZipFile zFile, String path) {
  try {
   // 获取压缩包中的每个文件
   Enumeration enu = zFile.entries();
   while (enu.hasMoreElements()) {
    // 将文件路径放入zEntry
    ZipEntry zEntry = (ZipEntry) enu.nextElement();
    // 创建此文件路径的File对象
    File file = new File(path + "//" + zEntry.getName());
    // 如果文件夹不存在,则创建
    File parentDir = new File(file.getParent());
    if (!parentDir.exists()) {
     parentDir.mkdirs();
    }
    // 解压文件
    InputStream read = zFile.getInputStream(zEntry);
    FileOutputStream write = new FileOutputStream(file.getPath());
    int len = 0;
    byte[] buff = new byte[1024];
    while ((len = read.read(buff, 0, buff.length)) != -1) {
     write.write(buff, 0, len);
    }
    write.close();
   }
  } catch (Exception ex) {
   ex.printStackTrace();
  }

 }
 // 解压缩文件
 public void zipOut(String zipIn,String fileOut) {
  try {
   //  ZipFile 以使用指定模式从指定 File(path) 对象读取
   ZipFile zip = new ZipFile(new File(zipIn));
   UnZip(zip, fileOut);
   zip.close();
  } catch (Exception ex) {
   ex.printStackTrace();
  }
  System.out.println(" 解压缩结束....");
 }
 /**
  * @param args
  * @throws IOException
  */

 public static void main(String[] args) throws IOException {
  ZipFolder zip = new ZipFolder();
//  // 1.压缩
//   zip.zipIn("E:\\Program Files", "E:\\files.zip");
//  // 2.解压缩
//  zip.zipOut("E:\\files.zip","e:\\321");
 
 }

}

分享到:
评论

相关推荐

    J2ME环境下基于ZLIB的数据压缩与解压缩.pdf

    ### J2ME环境下基于ZLIB的数据压缩与解压缩——关键技术解析 #### 一、引言:J2ME与ZLIB的结合背景 J2ME(Java2 Micro Edition),由Sun Microsystems为嵌入式和消费类电子设备设计的开发平台,与J2SE和J2EE并列为...

    J2SE 中文帮助文档

    在解压缩后,应当将其放置在“j2se/html/zh_CN/api”目录下,以便在本地进行查阅。** **对于初学者来说,了解J2SE的以下几个关键知识点至关重要:** 1. **基本语法**:包括数据类型、变量、控制结构(如if语句、...

    java解压缩工具程序

    本代码是一个简单的解压缩工具,其可以实现将文件压缩成压缩文件,也可解压缩(此功能与压缩类似,本人并没有完成)。其中实现了JList的添加图标的selection还实现了将文件夹中的所有文件压缩的递归算法。请尝试。...

    J2SE学习笔录

    - 解压缩安装即可。 3. **使用Eclipse编写HelloWorld** - 创建新的Java项目。 - 在项目中创建一个新的Java类,命名为`HelloWorld`。 - 编写HelloWorld代码。 - 运行程序。 #### 注释、标识符命名规则及Java中...

    语言程序设计资料:JAVA_WEB_简介.doc

    这里推荐使用ZIP文件进行解压缩安装,因为这种方式更具通用性。 安装Tomcat的步骤包括: 1. 使用解压缩工具(如WinZip或WinRAR)将jakarta-tomcat-5.5.7.zip解压缩到指定的驱动器和目录。 2. 解压缩后,你会看到一...

    Tomcat安装与配置[新手入门]

    1. 使用WinZip或WinRAR等解压缩工具将jakarta-tomcat-5.5.7.zip解压至任意指定的目录,比如D:\jakarta-tomcat-5.5.7。 2. 解压后,会形成一个包含多个子目录的结构,如图5-2所示,每个目录都有特定用途: - /bin:...

    关于系统监控sigar组件的部署说明1

    除了动态链接库,还需要解压缩`hyperic-sigar-1.6.4.zip`这个文件,从中获取到包含Java绑定的jar文件,比如`sigar.jar`。这个jar文件包含了Java对Sigar API的封装,需要将其添加到你的Java项目的类路径中。对于J2SE...

    Java语言入门教程.pdf

    在下载和安装Java SDK时,可能需要解压缩下载的文件,如j2sdk-1_4_1-*.exe。 9. 实用代码示例 给出的Java代码片段演示了如何创建一个简单的Java applet,它使用Graphics类在applet窗口中绘制线条和矩形,并填充颜色...

    JasperReport与iReport的配置与使用[整理].pdf

    iReport的安装通常是解压缩下载的ZIP文件到合适位置,不需要额外的安装步骤。配置iReport涉及到设置JasperReport的库文件路径,确保iReport能够找到JasperReport的相关组件。在iReport中,可以通过“预设”菜单选择...

    Eclipse操作手册(日文版)

    - 下载后解压缩文件到目标位置。 - 运行解压缩后的 Eclipse 应用程序。 - **Linux 系统**: - 解压下载的文件:`#tar xvfz eclipse-SDK-3.0.2-linux-gtk.zip` - 运行解压目录中的 Eclipse 应用程序。 #### 二...

    Linux JDK 、 TOMCAT 安装

    下载TOMCAT压缩包(如`apache-tomcat-6.0.18.tar.gz`),解压缩到指定目录: ```sh tar -zxvf apache-tomcat-6.0.18.tar.gz ``` ##### 2. 修改TOMCAT配置文件 - **编辑`tomcat-users.xml`**:位于`/path/to/apache...

    怎样在linux下配置java开发环境.pdf

    程序会自动解压缩并生成一个名为j2sdk-1_4_2_06-linux-i586.rpm的RPM软件包。 下一步是安装这个RPM包,使用`rpm`命令进行安装: ``` rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm ``` 安装完成后,你需要设置Java环境...

    搭建Eclipse+MyEclipse

    2. **解压缩**:将下载的文件解压缩至目标目录,如D盘根目录。 3. **配置环境变量**: - 新建系统变量`CATALINA_HOME`,指向Tomcat的解压目录,例如`D:\jakarta-tomcat-5.0.30`。 - 更新`CLASSPATH`,添加`%...

    MyEclipse和Eclipse开发环境的搭建步骤.doc

    - 下载Tomcat的Linux版本,解压缩到适当目录,如`/usr/local/tomcat`。 - 配置环境变量,如`CATALINA_HOME`。 - 设置启动和停止脚本,例如使用`/etc/init.d/tomcat`。 2. **MySQL安装** - 安装MySQL服务器,...

    小颖反编译工具1.4

    在使用前,用户需要先解压缩,然后按照软件提供的说明运行该文件,导入待反编译的Java字节码文件或目录,即可开始反编译过程。在使用过程中,用户应遵循版权法规,尊重原作者的知识产权,仅在合法和合理的情况下使用...

    精通Hibernate

    运行时可能会遇到问题,此时需要解压缩`appFuse.war`文件,查看`readme.txt`文件中的说明完成最后的安装步骤。例如,可以通过执行`ant setup-db`命令创建数据库。 对于新手来说,上述安装过程可能会遇到一些挑战。...

    j2ee环境配置_j2sdk和tomcat和eclipse安装

    - 解压缩`NLpack1-eclipse-SDK-3.2-win32.zip`至Eclipse安装目录下的`Language`子目录中。 - 在Eclipse安装目录下创建`links`子目录,并在此目录下新建文本文件`language.start`,内容如下: ``` path=d:\\eclipse...

    jdk,Eclipse,MySQL在linux下的安装手册

    2. 解压缩下载的文件,例如`eclipse-java-latest-linux-gtk-x86_64.tar.gz`,到你希望的目录,如`/opt/eclipse`。 3. 解压缩后,你可以通过命令行或图形界面启动Eclipse。在命令行中,导航到Eclipse的安装目录并...

    qr.rar_java qr_java qrco_qr_qr java_qrcode-cui.j

    从压缩包子文件的文件名称列表来看,只有一个文件"qrcode",这可能是解压缩后的主程序或者库文件,用户可能需要这个文件来实现QR码的解码功能。 在Java中,处理QR码通常涉及到使用像ZXing(Zebra Crossing)这样的...

    JSP示例程序操作Word文档源代码

    将jspsmartupload.rar解压缩,并将解压缩后生成的jspsmartupload整个目录,拷贝到您在第3步中安装jakarta-tomcat的目录下的webapps目录下。比如,D:Tomcat 4.0webapps,注意需要连同目录“jspsmartupload”一起拷贝。 ...

Global site tag (gtag.js) - Google Analytics