`
yaoweinan
  • 浏览: 139610 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Java解压、压缩文件

    博客分类:
  • j2se
阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;
/*
* 该包在spring2.0里面有
*/

public class ConpressFile {
private static ConpressFile instance=new ConpressFile();
private ConpressFile(){}
public static ConpressFile getInstance(){
return instance;

}
public synchronized void zip(String tFilinputFileNameeName,String zipFileName) throws IOException {
zip(new File(tFilinputFileNameeName),zipFileName);
}
private synchronized void zip(File file, String zipFileName) throws IOException {
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
try {
zip(file,out,"");
} catch (RuntimeException e) {
e.printStackTrace();
}
finally{
out.close();
}
}
private synchronized void zip(File file, ZipOutputStream out, String string) throws IOException {
if(file.isDirectory()){
File[] files=file.listFiles();
out.putNextEntry(new ZipEntry(string+"/"));
string=string.length()==0?"":"/";
for (int i = 0; i < files.length; i++) {
zip(files[i],out,string+files[i].getName());
}
}else{
if(string.length()>0){
out.putNextEntry(new ZipEntry(string));
}else{
out.putNextEntry(new ZipEntry(file.getName()));
}
FileInputStream in=new FileInputStream(file);
try {
int c;
byte[] buf=new byte[1024];
while ((c=in.read(buf))!=-1) {
out.write(buf,0, c);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
in.close();
}
}

}
public void unzip(String zipFileName,String dirFileName) throws IOException{
File file=new File(dirFileName);
if(!file.exists()){
file.mkdir();
}
ZipFile zipFile=new ZipFile(zipFileName);
Enumeration en=zipFile.getEntries();
ZipEntry zipEntry=null;
while (en.hasMoreElements()) {
zipEntry= (ZipEntry) en.nextElement();
if(zipEntry.isDirectory()){
String dirName=zipEntry.getName();
dirName=dirName.substring(0,dirName.length()-1);
File f=new File(file.getPath()+File.separator+dirName);
f.mkdir();

}else{
File f=new File(file.getPath()+File.separator+zipEntry.getName());
f.createNewFile();
InputStream in=zipFile.getInputStream(zipEntry);
FileOutputStream out=new FileOutputStream(f);
try {
int c;
byte [] buf=new byte[1024];
while ((c=in.read(buf))!=-1) {
out.write(buf, 0, c);
}
} catch (RuntimeException e) {
e.printStackTrace();
}finally{
in.close();
out.close();
}

}
}
}
public static void main(String[] agrs) throws IOException{
ConpressFile conpressFile=ConpressFile.getInstance();
conpressFile.zip("D:\\unzip","am.zip");
conpressFile.unzip("am.zip","text");
}
}

分享到:
评论

相关推荐

    java解压zip压缩文件

    在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...

    java 解压,压缩linux GZ压缩文件

    Java在Linux环境下对GZ压缩文件的处理是一个常见的任务,特别是在处理大文件或者网络传输时。GZ是一种常用的文件压缩格式,它利用了gzip程序进行压缩,而在Java中,我们可以使用`java.util.zip`包中的类来实现对GZ...

    文件解压和压缩 解决中文乱码

    在IT行业中,文件的压缩和解压是一项...总的来说,理解和掌握文件压缩和解压的原理,以及处理中文乱码的方法,对Java开发者来说至关重要,这能够帮助他们有效地处理各种文件操作需求,尤其是涉及到多语言环境的时候。

    java 中 zip压缩文件解压工具类

    本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...

    java获取压缩文件的名称并解压

    在Java编程中,处理压缩文件,如ZIP格式的文件,是一项常见的任务。本文将深入探讨如何使用Java来获取ZIP文件的名称以及如何高效地解压缩这些文件,特别是通过多线程来提高性能。 首先,我们需要引入Java的内置库`...

    java操作压缩文件和解压文件实例代码(经测试)

    在Java编程语言中,处理压缩文件(如ZIP或GZ格式)是一项常见的任务。本示例将探讨如何使用Java API来实现文件的压缩和解压缩功能。提供的压缩包包含三个文件:ant.jar(一个用于构建工具的库)、ZipFileList.java...

    Java压缩及解压tar、tar.z格式文件

    Java压缩及解压tar、tar.z格式文件, 需要apache的包ant-1.7.1.jar 这个自己去搜索下下载

    java解压linux上的压缩文件gz格式文件

    本文将详细介绍如何使用 Java 在 Linux 系统上解压 `.gz` 格式的压缩文件,并探讨多种解压方法。 #### 基本解压方法 首先,我们来看一个基本的例子,该例子展示了如何使用 `GZIPInputStream` 类来读取并解压 `.gz`...

    Java解压缩文件,尤其对于Rar5.0版本的解压实现.zip

    沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...

    使用 Java 实现的压缩/解压 ZIP 文件的工具类

    在Java编程环境中,处理文件压缩和解压任务是常见的需求,尤其在数据传输或存储时。ZIP文件格式因其广泛支持和高效性而被广泛应用。本文将深入探讨如何使用Java实现ZIP文件的压缩与解压,重点讲解核心API,如`java....

    java压缩解压文件

    java压缩解压文件

    java ftp上传 下载 文件压缩解压

    这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...

    java解压和压缩tar包

    首先,`javatar-2.5.jar`是一个专门用于处理tar文件的Java库,它提供了解压和压缩tar文件的API,方便开发者在Java项目中进行文件的打包和解包操作。这个库特别强调了解决中文文件名乱码的问题,确保在处理包含非...

    Java实现的带密码压缩与解压zip文件源码

    在Java编程环境中,处理压缩和解压缩文件是一项常见的任务,特别是在数据存储、文件传输和备份等领域。本项目专注于使用Java实现带密码保护的ZIP文件的压缩和解压功能。这是一项安全措施,允许用户对敏感文件进行...

    java 操作Zip文件(压缩、解压、加密).zip

    Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...

    实现java文件压缩与解压

    - **递归压缩文件**:对于每个文件或目录,如果是目录,则递归地对其子文件进行压缩;如果是文件,则直接压缩。 - **关闭资源**:完成压缩后,需要关闭所有打开的输入输出流。 ##### 2. 关键代码解读 ```java ...

    详解Java无需解压直接读取Zip文件和文件内容

    Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...

    java后台解压压缩文件

    前端上传ZIP压缩文件 使用 ZipInputStream 来解压至指定目录中.

    安卓java 压缩解压文件

    在Android中压缩文件,我们需要创建一个`ZipOutputStream`对象,然后通过它逐个添加文件到ZIP文件中。以下是一个基本的步骤: 1. 打开一个输出流到目标ZIP文件。 2. 创建`ZipOutputStream`,将输出流作为参数传入。...

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者""....

Global site tag (gtag.js) - Google Analytics