導航:首頁 > 文件處理 > 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文本文件壓縮相關的資料

熱點內容
安卓光遇怎麼轉ios服 瀏覽:398
android展示文本 瀏覽:208
比特幣命令 瀏覽: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
怎樣關閉照片加密 瀏覽:524