最近有个项目需要用压缩算法,懒得自己写算法了,直接就用了java自带的类库
zip的压缩如下
public void saveFileZip(String srcname,String destname)
{
try {
BufferedInputStream origin = null;
FileOutputStream dest = new FileOutputStream("E:\\test\\myfiles.zip");
ZipOutputStream out = new ZipOutputStream(dest);
byte data[] = new byte[BUFFER];
File f = new File("e:\\test\\a\\");
File files[] = f.listFiles();
for (int i = 0; i < files.length; i++) {
FileInputStream fi = new FileInputStream(files[i]);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i].getName());
System.out.println(entry.getName());
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
由于zip是无损压缩,所以压缩的效率不是很高,需要高效的可以尝试下其他的压缩算法,如果是跟c连调的话建议还是自己写,因为同一种压缩格式在c跟java中有些地方是不一样的,不能通用。
还有一种压缩方式tar的
public void saveFileTar() throws Exception
{
File desFile = new File("E:\\test","test.tar"); //.tar or .tar.gz
File srcFile2 = new File("e:\\test\\a\\Mercury+LoadRunner教程8.1版.pdf");
FileOutputStream fileoutPutStream = new FileOutputStream(desFile);
/*
要壓.tar.gz在加一層GZIPOutputStream,TarArchive的constructor要改用GZIPOutputStream
*/
// GZIPOutputStream gzOutput = new GZIPOutputStream(fileoutPutStream);
TarEntry tarEntry = new TarEntry(srcFile2);
TarArchive desTarFile = new TarArchive(fileoutPutStream);
desTarFile.writeEntry(tarEntry,true);
desTarFile.closeArchive();
}
分享到:
相关推荐
### Linux下tar与zip压缩工具效率对比分析 #### 背景介绍 在Linux操作系统中,数据管理和存储是一项重要的任务。随着系统使用的深入,文件...以上就是关于“Linux下tar和zip压缩效率”的详细分析。希望对您有所帮助!
这个资源包包含了处理zip、gzip和tar等压缩格式的类,提供了方便的方法来完成这些工作。以下是对这些知识点的详细说明: 1. **PHP**:PHP(PHP:Hypertext Preprocessor)是一种开源的服务器端脚本语言,广泛用于...
在Windows操作系统中,通常我们使用的压缩和解压缩工具是如WinRAR或7-Zip这样的软件,但有时我们可能需要处理Linux环境下产生的`.tar`格式文件。`.tar`文件是一种非常常见的档案格式,它主要用于组合多个文件和目录...
7-Zip是一款免费且功能强大的压缩工具,支持多种压缩格式,包括7z、ZIP、GZIP、BZIP2、TAR、XZ等。而tar.gz是Unix/Linux系统中常用的一种归档压缩格式,它结合了tar的归档功能和gzip的压缩功能。在本例中,我们关注...
7-Zip的右键扩展工具则为用户提供了便捷的方式,通过Windows资源管理器的右键菜单直接创建tar.gz文件,避免了先手动创建tar文件,再进行GZIP压缩的繁琐步骤。这个扩展通常是一个注册表脚本或者第三方插件,它可以...
本文将详细介绍如何在 Linux 系统中使用 `zip`, `tar`, `tar.gz` 和 `tar.bz2` 这四种不同的压缩格式。 #### 1. Zip 格式 **Zip** 是一种广泛使用的压缩格式,在 Windows、Linux 和 macOS 等不同操作系统上都得到...
### tar压缩解压详解 #### 一、tar命令概述 `tar`命令是Linux系统中极为重要的文件打包工具,广泛应用于文件的备份与传输。它能够将多个文件合并成一个文件,即通常所说的“打包”。此外,`tar`命令还可以与其它...
ZIP与RAR、TAR、GZIP等其他压缩格式相比,兼容性更佳,但压缩率可能较低。RAR提供了更好的压缩率,但不是所有平台都支持。 8. **ZIP在开发中的应用** 开发者经常使用ZIP格式进行源代码、资源文件或构建输出的打包...
本文将详细讲解如何使用Java API来压缩和解压缩`.zip`、`.rar`和`.tar`这三种常见的文件格式。 首先,对于`.zip`文件的处理,我们可以使用Apache的`commons-compress`库中的`ZipFile`和`ZipOutputStream`类。在提供...
这个类提供了创建、读取、修改以及提取ZIP文件的能力,同时也支持其他压缩格式如TAR和GZIP。在本文中,我们将深入探讨`ZipArchive` 类的主要功能和用法,以便更好地理解和应用在实际项目中。 ### 1. 创建ZIP文件 ...
7-Zip是一款强大的开源压缩软件,它支持多种压缩格式,如7z、ZIP、GZIP、BZIP2、TAR等,并且具有高压缩比的特点。在日常工作中,如果我们需要将大量的文件分别压缩成单独的压缩文件,7-Zip提供了方便的批量处理功能...
支持多种文件格式,包括但不限于 7z、ZIP、GZIP、BZIP2 和 TAR 等,同时也能打开 RAR、CAB、ISO、ARJ、LZH、CHM、Z、CPIO、BZR、TBZ2、TB2、TXZ、TAZ、TLZ、TZ、7Z、XZ、Ear、WAR、JAR 等多种常见的压缩格式,几乎...
在Java中,处理tar文件通常需要使用`java.util.zip`和`java.io`这两个包,但这些基础类库并不直接支持tar格式,因此我们需要第三方库如`javatar`。`TarUtil.java`是`javatar`库中的核心类,它包含了创建和读取tar...
7-zip支持包括ZIP、GZIP、BZIP2、TAR等多种压缩格式,但其最具特色的是自有的7z格式。7z格式采用LZMA(Lempel-Ziv-Markov chain algorithm)压缩算法,压缩比率高,尤其对文本文件和程序代码的压缩效果显著。7-zip...
内容概要:这是一个使用libarchive库接口压缩文件的C语言...能学到什么:快速了解libarchive库的API接口使用例程,学会tar.gz和7zip格式压缩的基本方式。 阅读建议:压缩包中有readme.txt文件,帮助读者快速了解demo。
- ZIP与tar:tar格式主要用于归档,不包含压缩,但常与gzip或bzip2结合使用(如tar.gz或tar.bz2),提供归档和压缩功能。与ZIP不同,tar文件通常用于Unix/Linux环境。 4. **标签中的"zip"**: 在这里,"zip"标签...
这款工具支持多种压缩和解压缩格式,包括但不限于7z、ZIP、GZIP、BZIP2、TAR以及各种常见的二进制文件格式。 1. **7z格式与压缩比率**: - 7z是7-Zip的专有格式,它采用了LZMA(Lempel-Ziv-Markov chain Algorithm...
本文将深入探讨Linux下不同格式的tar压缩文件及其对应的解压命令,帮助用户更高效地管理文件。 ### 1. *.tar 文件解压 tar是一种常见的用于打包文件的工具,在Linux中广泛使用。当文件被压缩成.tar格式时,可以...
QT5不仅支持ZIP格式,还可以处理其他压缩格式如TAR、GZIP等,只需更换相应的读写器类即可。 10. **最佳实践** 为了保持代码的可维护性和灵活性,建议封装压缩和解压缩功能为独立的函数或类,以便在不同项目中复用...
7Z ZIP TAR GZIP BZIP2 XZ LZIP DMG ISO 并支持解压这些格式: 7Z ZIP ZIPX RAR TAR GZIP BZIP2 XZ LZIP DMG ISO LZMA EXE CAB WIM PAX JAR WAR IPA APK APPX XPI CPGZ 便捷且强大 您在使用时甚至无需打开 ...