首先我们实现最简单的解压缩zip文件,该zip文件中不包含文件夹,也不含中文名。
/**
* <pre>
* 参考:
* http://www.ibm.com/developerworks/cn/java/l-compress/index.html
* </pre>
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnZip {
/** 定义一个2K的缓冲区 */
static final int BUFFER = 2048;
public static void main(String[] args) {
String fileName = "c:/testlog.zip";
// String unZipDir = "c:/abcd/abcd/abcd/abcd/abcd/";
String unZipDir = "c:/1/2/";
unZip(fileName, unZipDir);
// System.out.println(makeDir(unZipDir));
}
/**
* @param fileName
* String 待解压缩的文件名
* @param unZipDir
* String 存放解压缩后生成的文件的文件夹
*/
public static void unZip(String fileName, String unZipDir) {
try {
// 先判断目标文件夹是否存在,如果不存在则新建,如果父目录不存在也新建
File f = new File(unZipDir);
if (!f.exists()) {
f.mkdirs();
}
BufferedOutputStream dest = null;
// 将用文件输入流读入ZIP文件
FileInputStream fis = new FileInputStream(fileName);
// 类ZipInputStream读取ZIP文件
ZipInputStream zis = new ZipInputStream(
new BufferedInputStream(fis));
ZipEntry entry;
String newFileName = "";
// ZIP输入流打开后,你可以使用getNextEntry方法来读取ZIP文件中的条目数,
// 该方法返回一个ZipEntry对象。如果到达文件的尾部,getNextEntry返回null
while ((entry = zis.getNextEntry()) != null) {
System.out.println("Extracting: " + entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
newFileName = unZipDir + "/" + entry.getName();
System.out.println("newFileName: " + newFileName);
FileOutputStream fos = new FileOutputStream(newFileName);
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean makeDir(String unZipDir) {
boolean b = false;
try {
File f = new File(unZipDir);
if (!f.exists()) {
b = f.mkdirs();
}
} catch (Exception e) {
e.printStackTrace();
return b;
}
return b;
}
}
分享到:
相关推荐
4. **源代码实现**:实践中提供的源代码展示了如何使用Java API来实现文件和目录的压缩与解压缩。这可能包括读取文件,创建压缩流,写入数据到压缩流,以及从压缩流中读取和写入文件等步骤。 5. **文件操作**:在...
ame()); tOut.putArchiveEntry(tarEntry);...通过引入该库,我们可以轻松地在 Java 程序中实现文件和文件夹的压缩与解压缩功能。在实际开发中,注意错误处理、资源管理以及安全性等方面,以确保程序的健壮性和安全性。
Java文件压缩与解压缩是指将一个或多个文件或文件夹打包成一个压缩文件,或者将压缩文件解压缩成原始文件的过程。 常见的压缩格式包括ZIP、GZIP、TAR等,Java提供了相应的API来实现对这些格式的操作。 功能特点: ...
Java 实现压缩与解压缩是Java编程中常见的一项任务,主要涉及到I/O流处理和压缩库的使用。本文将深入探讨如何使用Java进行文件的压缩和解压缩操作,以及涉及的相关知识点。 首先,Java标准库提供了`java.util.zip`...
Java文件压缩与解压缩是Java开发中常见的操作,特别是在数据传输、存储优化和备份场景下。本实践项目提供了源代码和相关论文,帮助开发者深入理解这一主题。在Java中,我们可以利用内置的`java.util.zip`包来实现...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API...
以下是一个简单的解压缩示例: ```java import java.io.*; import java.util.zip.*; public class UnzipExample { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream...
使用Java核心API实现单文件/多文件/整个目录的压缩/解压缩功能,由于自带API(1.6)不支持指定编码方式,因此中文会出现乱码(1.7貌似已经支持指定编码方式),所以还写了一个基于ant包的压缩/解压缩代码。
总之,Java文件压缩与解压缩实践项目通过源代码展示了如何利用Java内置API进行文件和目录的压缩与解压缩,同时也为开发者提供了一个学习和参考的平台,有助于提升Java开发者的实用技能。通过深入研究这些示例,...
在Java编程语言中,文件的压缩与解压缩是常见的任务,尤其在数据传输、存储优化以及备份场景下显得尤为重要。本资源"JAVA开发JAVA文件压缩与解压缩实践(源代码+论文)"提供了一套完整的实践教程,包含了源代码实现和...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。本资源"JAVA文件压缩与解压缩实践(源代码+论文)"提供了一套完整的实践教程,包括源代码和相关理论探讨。...
一个完整的Java压缩与解压缩程序通常包含多个类,如`Compressor`和`Decompressor`,分别处理压缩和解压任务。可能还有其他辅助类,如`FileUtil`来处理文件和目录的操作,以及`ZipHelper`来封装`java.util.zip`包的...
在本篇中,我们将深入探讨如何使用Java API来实现ZIP文件的解压缩,以及可能需要用到的第三方库。 首先,Java标准库(Java Standard Library)自身提供了对ZIP文件的支持。在`java.util.zip`包中,有两个关键类用于...