导航:首页 > 文件处理 > java文本文件压缩

java文本文件压缩

发布时间:2025-07-08 15:16:08

java压缩技术 - tar.bz2解压

本文将通过解压tar.bz2文件来讲解Java的解压操作,对于从网络上下载的源码包中常见的tar.bz2格式,本文提供了解决方案。tar.bz2文件由bzip2压缩工具具有高压缩率的压缩而成。


压缩与解压命令在Linux中非常常见,压缩命令使用`bzip2`,解压命令使用`bzip2 -d`。对于Java开发者,解压tar.bz2文件需要借助`TarInputStream`和`BZip2CompressorInputStream`这两个类。


在准备阶段,我们需要在项目依赖中添加以下内容:



  1. 添加`TarInputStream`依赖,确保项目中能使用到该类。

  2. 添加`BZip2CompressorInputStream`依赖,确保项目能处理bzip2格式的压缩。


为了解压tar.bz2文件,首先需要创建一个目录。在目录下,使用`JarInputStream`类解压缩tar.bz2文件。具体步骤如下:



  1. 创建一个目录以存放解压后的文件。

  2. 使用`JarInputStream`类,传入tar.bz2文件路径和创建的目录路径。

  3. 在流中遍历文件,将解压后的文件输出到指定目录。


解压完成后,tar.bz2文件中的内容将被解压并存储在指定目录下。通过上述步骤,Java开发者能够轻松实现tar.bz2文件的解压操作。对于更多Java相关技术,读者可自行探索。

⑵ java 如何将 txt 文件 变成zip压缩文件 求例子!!

这个要用 压缩流类 ZipOutputStream
下面是一个例子 在D盘下有个 名字叫 demo.txt的文件.程序运行后会再D盘下生成一个demo.zip的文件,以下是代码:
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipOutputStreamDemo {
public static void main(String args[]) throws IOException {
//定义要压缩的文件 也就是说在D盘里有个 demo.txt 的文件(必须要有,否者会有异常,实际应用中可判断);
File file = new File("d:" + File.separator + "demo.txt");

//定义压缩文件的名称
File zipFile = new File("d:" + File.separator + "demo.zip");

//定义输入文件流
InputStream input = new FileInputStream(file);

//定义压缩输出流
ZipOutputStream zipOut = null;

//实例化压缩输出流,并制定压缩文件的输出路径 就是D盘下,名字叫 demo.zip
zipOut = new ZipOutputStream(new FileOutputStream(zipFile));

zipOut.putNextEntry(new ZipEntry(file.getName()));

//设置注释
zipOut.setComment("www.demo.com");
int temp = 0;
while((temp = input.read()) != -1) {
zipOut.write(temp);
}
input.close();
zipOut.close();

}
}
希望能帮助楼主,建议楼主多看看JDK文档,设计到文件的输出什么都在JAVA.IO包里,好好看看..
不过楼主要知道,压缩流也是inputstream和outputstream的子类,但是并没有定义在java.io包里,而是以一个工具类的形式出现的,但是在用的时候还是需要java.io包的支持的...

⑶ 电脑文件zip如何压缩java实现对zip文件的压缩

电脑文件zip如何压缩(java实现对zip文件的压缩)
一、java实现压缩为zip
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
publicclassZipUtils{
privatestaticfinalintBUFFER_SIZE=2*1024;
publicstaticvoiddirFile(Filedir){
File[]files=dir.listFiles();//得到File数组,获得目录下所有文件
for(Filefile:files){//遍历所有的子目录和文件
if(file.isDirectory()){
dirFile(file);//如果是目录递归调用dirFile()
}
//成功压缩文件后,对原文件进行删除
file.delete();
}
//顺带把对应的目录进行删除
dir.delete();
}
/**
*压缩成ZIP方法1
*@paramsrcDir压缩文件夹路径
*@paramout压缩文件输出流
*@paramKeepDirstructure是否保留原来的目录结构,true:保留目录结构;
*false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
*@throwsRuntimeException压缩失败会抛出运行时异常
*/
publicstaticvoidtoZip(StringsrcDir,OutputStreamout,booleanKeepDirstructure)
throwsRuntimeException{
longstart=System.currentTimeMillis();
ZipOutputStreamzos=null;
try{
zos=newZipOutputStream(out);
FilesourceFile=newFile(srcDir);
compress(sourceFile,zos,sourceFile.getName(),KeepDirstructure);
longend=System.currentTimeMillis();
System.out.println("压缩完成,耗时:"+(end-start)+"ms");
}catch(Exceptione){
thrownewRuntimeException("ziperrorfromZipUtils",e);
}finally{
if(zos!=null){
try{
zos.close();
}catch(IOExceptione){
e.printstacktrace();
}
}
}
}
/**
*递归压缩方法
*@paramsourceFile源文件
*@paramzoszip输出流
*@paramname压缩后的名称
*@paramKeepDirstructure是否保留原来的目录结构,会压缩失败)
*@throwsException
*/
privatestaticvoidcompress(FilesourceFile,ZipOutputStreamzos,Stringname,
booleanKeepDirstructure)throwsException{
byte[]buf=newbyte[BUFFER_SIZE];
if(sourceFile.isFile()){
//向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字
zos.putNextEntry(newZipEntry(name));
//文件到zip输出流中
intlen;
FileInputStreamin=newFileInputStream(sourceFile);
while((len=in.read(buf))!=-1){
zos.write(buf,len);
}
//Completetheentry
zos.closeEntry();
in.close();
}else{
File[]listFiles=sourceFile.listFiles();
if(listFiles==null||listFiles.length==0){
//需要保留原来的文件结构时,需要对空文件夹进行处理
if(KeepDirstructure){
//空文件夹的处理
zos.putNextEntry(newZipEntry(name+"/"));
//没有文件,不需要文件的
zos.closeEntry();
}
}else{
for(Filefile:listFiles){
//判断是否需要保留原来的文件结构
if(KeepDirstructure){
//注意:file.getName()前面需要带上父文件夹的名字加一斜杠,
//不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了
compress(file,name+"/"+file.getName(),KeepDirstructure);
}else{
compress(file,file.getName(),KeepDirstructure);
}
}
}
}
}
}

阅读全文

与java文本文件压缩相关的资料

热点内容
win7怎么安装编程 浏览:243
安卓光遇怎么转ios服 浏览:400
android展示文本 浏览:210
比特币命令 浏览:956
pythonweb开发实战例程 浏览:316
android图片自动裁剪图片 浏览:906
程序员闪退怎么解决 浏览:526
看小视频APP什么秀 浏览:163
linuxping源地址 浏览:738
编程语言的优点与缺点 浏览:980
台湾历史pdf 浏览:826
贷款短信提醒源码 浏览:114
乔家的儿女在什么app播 浏览:340
javalicense实现 浏览:376
mysql创建数据库命令 浏览:990
红色的鱼是什么app 浏览:685
程序员的生涯经历 浏览:437
纳粹命令 浏览:590
什么讲鬼故事app 浏览:969
程序员级升 浏览:89