public static File compressTarFile(List<File> list, String targzipFilePath, String targzipFileName){
byte[] buf = new byte[1024]; //设定读入缓冲区尺寸
try{
//建立压缩文件输出流
FileOutputStream fout=new FileOutputStream(targzipFilePath+"test.tar.gz");
//建立tar压缩输出流
TarOutputStream tout=new TarOutputStream(fout);
for(File file : list){
//打开需压缩文件作为文件输入流
FileInputStream fin=new FileInputStream(file); //filename是文件全路径
TarEntry tarEn=new TarEntry(file); //此处必须使用new TarEntry(File file);
tarEn.setName(file.getName()); //此处需重置名称,默认是带全路径的,否则打包后会带全路径
tout.putNextEntry(tarEn);
int num = -1;
while ((num=fin.read(buf)) > 0){
tout.write(buf,0,num);
}
tout.closeEntry();
fin.close();
}
tout.close();
fout.close();
//建立压缩文件输出流
FileOutputStream gzFile=new FileOutputStream(targzipFilePath+targzipFileName);
//建立gzip压缩输出流
GZIPOutputStream gzout=new GZIPOutputStream(gzFile);
//打开需压缩文件作为文件输入流
FileInputStream tarin=new FileInputStream(targzipFilePath+"test.tar.gz");
int len;
while((len=tarin.read(buf)) != -1){
gzout.write(buf,0,len);
}
gzout.close();
gzFile.close();
tarin.close();
return new File(targzipFilePath+targzipFileName);
}catch(Exception e){
e.printStackTrace();
}
return null ;
}
先归档,后压缩
相关推荐
下面的例子展示了如何将 tar.gz 文件解压到指定的目录。import org.apache.commons.compress.archivers.tar.TarArchiveEntry;import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;import org....
2. **解压缩tar.gz文件**: - 使用`GzipCompressorInputStream`和`TarArchiveInputStream`解压缩: ```java import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons....
解压缩".tar.gz"文件,可以使用`tar`命令。Linux中的`tar`命令用于处理归档文件,而`.gz`表示文件被gzip压缩了。解压缩的命令通常是: ```bash tar -zxvf mysql-connector-java-5.1.40.tar.gz ``` 这条命令的参数...
java读取tar.gz压缩文件的jar包
首先,我们来看“nexus-3.69.0-02-java17-unix.tar.gz”这个文件。这是一个针对Unix系统的归档文件,采用gzip压缩格式。Unix是一种历史悠久且广泛使用的操作系统,其稳定性和灵活性使其成为服务器环境的首选。Nexus...
在Java编程中,处理tar.gz文件常常用于归档和压缩大量数据。tar.gz文件是由tar命令创建的归档文件,然后通过gzip工具进行压缩。在Java中解析这种类型的文件,通常需要两个步骤:首先解压gzip,然后解包tar。这里我们...
标题中的"protobuf3.6.1-3.7.1.tar.gz"以及描述中的"protobuf3.6.1_3.7.1.tar.gz"都指的是一个包含Protocol Buffers(protobuf)不同版本的压缩文件,这里分别是3.6.1和3.7.1两个版本。protobuf是由Google开发的一种...
`mysql-connector-java-5.1.29.tar.gz`这个文件是MySQL Connector/J的5.1.29版本,以tar.gz格式打包,这是一种常见的Linux/Unix平台上的归档和压缩格式。 MySQL Connector/J 5.1.29版本包含了以下关键知识点: 1. ...
在使用"mysql-connector-java-8.0.19.tar.gz"时,首先需要将其解压缩。这通常可以通过命令行工具或图形界面的解压软件完成。解压后,你会得到一个名为`mysql-connector-java-8.0.19`的目录,其中包含`mysql-...
标题中的“pcre-8.40.tar.gz”是一个开源软件包,名为Perl Compatible Regular Expressions(PCRE)的版本8.40,它被压缩为一个tar.gz格式的文件。这种格式通常在Linux和类UNIX系统中使用,用于存储和分发软件源代码...
在这个例子中,`compress`目标会创建一个包含"src"目录内容的tar文件,然后将其压缩为tar.gz。`extract`目标则会解压tar.gz文件并将其内容解压到"extracted"目录。 了解这些基础知识后,我们可以更有效地利用7-Zip...
标题中的"javasqlite-20090430.tar.gz"是一个特定版本的JavaSQLite库的压缩包文件,发布于2009年4月30日。JavaSQLite是一个将SQLite数据库引擎与Java集成的开源库,它允许Java开发者在应用程序中直接使用SQLite...
首先,"mysql-connector-java-5.1.32.tar.gz" 是一个针对Linux或Unix环境的归档文件,采用tar格式打包,并用gzip进行压缩。这种类型的文件在Unix-like系统中非常常见,用于收集和压缩多个相关文件。要解压这个文件,...
标题中的"jdk-8u162-linux-x64.tar.gz.zip"是一个文件名,它表明这是一款针对Linux操作系统x64架构的Java Development Kit(JDK)的压缩包,版本号为8u162。JDK是Oracle公司提供的Java编程语言的软件开发工具包,...
本文将详细讲解如何使用Java API来压缩和解压缩`.zip`、`.rar`和`.tar`这三种常见的文件格式。 首先,对于`.zip`文件的处理,我们可以使用Apache的`commons-compress`库中的`ZipFile`和`ZipOutputStream`类。在提供...
1. **解压**:使用`tar -zxvf gcc-java-4.1.2.tar.gz`命令来解压缩文件。 2. **配置**:运行`./configure`脚本来检测系统环境并准备构建。 3. **编译**:使用`make`命令来编译源代码。 4. **安装**:使用`make ...
文件名中的`.tar.gz`表明这是一个经过两次压缩的文件,首先使用tar命令将所有文件打包成一个.tar文件,然后使用gzip进行压缩,生成.tar.gz文件。而`.zip`后缀表示这个.tar.gz文件再次被ZIP压缩格式封装,这样做的...
标题中的三个压缩包文件分别是`findbugs-1.3.9.tar.gz`、`protobuf-2.5.0.tar.gz`和`snappy-1.1.1.tar.gz`,它们各自代表了不同的开源工具或库,分别在软件质量检测、数据序列化和数据压缩方面发挥着重要作用。...
标题“jdk-8u401-linux-x64.tar.gz.7z”表明这是一个Java开发工具包(JDK)的压缩文件,版本为8u401,适用于Linux操作系统,特别是x64架构的系统。它被进一步压缩成了7z格式,这是一种高效且常见的文件压缩格式,...
这个压缩文件包含了JDBC(Java Database Connectivity)驱动,使得Java开发者能够在他们的应用中与MySQL数据库进行交互。 JDBC是Java平台上的一个标准API,它提供了统一的接口来访问各种不同的数据库系统。通过使用...