/**
* 多文件压缩
*
* @author Administrator
*
*/
public class ZipCompress {
public static void main(String args[]) {
String[] filepaths = { "D:\\zip1.txt", "D:\\zip2.txt" };
try {
FileOutputStream f = new FileOutputStream("D://test.zip");
// 输出校验流,采用Adler32更快
CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());
//创建压缩输出流
ZipOutputStream zos = new ZipOutputStream(csum);
BufferedOutputStream out = new BufferedOutputStream(zos);
//设置Zip文件注释
zos.setComment("A test of java Zipping");
for (String s : filepaths) {
System.out.println("Writing file " + s);
//针对单个文件建立读取流
BufferedReader bin = new BufferedReader(new FileReader(s));
//ZipEntry ZIP 文件条目
//putNextEntry 写入新条目,并定位到新条目开始处
zos.putNextEntry(new ZipEntry(s));
int c;
while ((c = bin.read()) != -1) {
out.write(c);
}
bin.close();
out.flush();
}
out.close();
FileInputStream fi = new FileInputStream("D://test.zip");
CheckedInputStream csumi = new CheckedInputStream(fi, new Adler32());
ZipInputStream in2 = new ZipInputStream(csumi);
BufferedInputStream bis = new BufferedInputStream(in2);
ZipEntry ze;
while ((ze = in2.getNextEntry()) != null) {
System.out.println("Reader File " + ze);
int x;
while ((x = bis.read()) != -1)
System.out.println(x);
}
//利用ZipFile解压压缩文件
ZipFile zf = new ZipFile("D:\\test.zip");
Enumeration e = zf.entries();
while(e.hasMoreElements()){
ZipEntry ze2 = (ZipEntry) e.nextElement();
System.out.println("File name : "+ze2);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
GZIP压缩
/**
* 文件压缩
* 把文件压缩成GZIP 单一的流数据 并不是互异的数据
* GZIPOutputStream的使用
* @author Administrator
*
*/
public class GzipPcompress {
public static void main(String args[]) {
try {
BufferedReader in = new BufferedReader(new FileReader("D:\\gziptest.txt"));
BufferedOutputStream out = new BufferedOutputStream(
new GZIPOutputStream(new FileOutputStream("D:\\test.gz")));
System.out.println("Writing file");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
in.close();
out.close();
System.out.println("Reading file");
BufferedReader in2 = new BufferedReader(new InputStreamReader(
new GZIPInputStream(new FileInputStream("D:\\test.gz"))));
String s;
while((s=in2.readLine()) != null){
System.out.println(s);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
例如,它们支持更多的压缩格式(如GZIP、BZIP2等)和更复杂的压缩选项。 8. **多线程压缩** 对于大型文件或大量文件的压缩,可以考虑使用多线程来提高效率,每个线程处理一部分文件。 9. **文件权限和属性** 在...
Java中的`GZIPOutputStream`和`GZIPInputStream`用于对文件进行GZIP压缩和解压缩。 4. **源代码实现**:实践中提供的源代码展示了如何使用Java API来实现文件和目录的压缩与解压缩。这可能包括读取文件,创建压缩流...
基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩...
Java文件的压缩与解压缩是Java编程中一个实用且常见的技术,主要涉及到Java的I/O流和第三方库如Apache Commons Compress、Java内置的java.util.zip包等。本实践项目结合了源代码和相关论文,提供了深入理解这一主题...
JavaZip压缩类是Java编程语言中用于处理ZIP文件格式的核心工具,主要集中在java.util.zip包中。这个包提供了多种类和接口,使得开发者能够轻松地对数据进行压缩和解压缩,尤其是在开发需要处理大量数据的应用时,如...
通过提供的代码文件`CompressTestMain.java`、`GzipUtils.java`和`ZipUtils.java`,我们可以推测作者可能构建了一个测试环境,比较了Gzip和Zip压缩算法在实际操作中的性能差异。 首先,让我们了解Gzip和Zip的基本...
1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件的功能。`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压。你可以通过遍历文件或目录,创建`ZipEntry`对象并...
首先,让我们了解`java.util.zip`包,它是Java标准库中用于处理ZIP和GZIP格式的压缩的工具。`ZipOutputStream`和`ZipEntry`是这个包中的关键类,它们用于创建和管理ZIP文件。 1. **ZipOutputStream**: - `...
总结,Java中的GZIP压缩和解压缩文件是通过`GZIPOutputStream`和`GZIPInputStream`类实现的。了解并掌握这些基础知识对于进行Java文件处理和数据传输是非常重要的。同时,根据项目需求,你可能还需要考虑其他优化和...
要使用GZIP压缩文件,我们首先创建一个`FileOutputStream`对象,然后通过它创建一个`GZIPOutputStream`。将要压缩的数据写入`GZIPOutputStream`,完成后记得关闭流。以下是一个简单的示例: ```java import java.io...
10. **多文件压缩**:如果要压缩多个文件,通常会先将它们打包成一个存档(如tar文件),然后对整个存档进行GZIP压缩。Java中没有内置的tar功能,但可以借助第三方库如Apache Commons Compress来实现。 11. **性能...
tar.gz是先使用tar打包多个文件,然后再用GZIP压缩。 6. **性能考虑** GZIP压缩效果通常比不压缩好,但压缩和解压缩操作会消耗更多的CPU资源。在性能敏感的应用中,需要权衡压缩带来的空间节省与CPU消耗。 7. **...
首先,我们要了解Java中的`java.util.zip.GZIPOutputStream`和`java.util.zip.GZIPInputStream`类,这两个类是Java标准库提供的用于GZIP压缩和解压缩的核心工具。`GZIPOutputStream`用于写入压缩数据,而`...
总结,Java通过`java.util.zip`包提供的GZIPOutputStream和GZIPInputStream类,使得开发者能够方便地对文件进行GZIP压缩和解压缩。在实际项目中,根据具体需求选择合适的压缩和解压缩策略,可以有效提高存储和网络...
1. **压缩API**:在Java中,`java.util.zip`包提供了多个类用于处理压缩文件,如`ZipOutputStream`用于创建ZIP文件,`GZIPOutputStream`用于创建GZIP格式的压缩文件。例如,使用`ZipOutputStream`,我们可以将多个...
如`ZipOutputStream`用于创建ZIP文件,`GZIPOutputStream`用于GZIP压缩,`InflaterInputStream`和`DeflaterInputStream`则用于解压缩。 2. **ZIP文件格式**: ZIP是一种广泛使用的归档文件格式,可以包含多个文件和...
除了 ZIP 文件格式之外,`java.util.zip` 包还支持 GZIP 压缩。GZIP 是一种广泛使用的文件格式,通常用于单个文件的压缩。 ##### GZIP 压缩 使用 `GZIPOutputStream` 可以将文件压缩为 GZIP 格式: ```java ...
Java标准库提供了`java.util.zip`包,它包含了处理压缩文件所需的类和接口,如`ZipInputStream`和`ZipOutputStream`用于处理ZIP文件,`GZIPOutputStream`和`GZIPInputStream`用于处理GZIP文件。 2. **ZIP文件解...