當前位置:首頁 » 文件管理 » java解壓z文件

java解壓z文件

發布時間: 2024-07-14 14:41:45

A. java中怎麼用cmd命令解壓zip文件

對於zip文件,java有自帶類庫java.util.zip;可是要想解壓rar文件只能靠第三方類庫,我試過兩個:com.github.junrar和de.innosystec.unrar,前者解壓時可能會出現crcError,後者pom配置時報錯;利用cmd命令調用winRAR進行解壓,無疑方便快捷很多。

調用cmd命令

public static boolean exe(String cmd) {
Runtime runtime = Runtime.getRuntime(); try {
Process p = runtime.exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"));

String line = reader.readLine(); while(line!=null) {
logger.info(line);
line = reader.readLine();
}
reader.close(); if(p.waitFor()!=0) { return false;
}
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) { // TODO Auto-generated catch block
e.printStackTrace();
} return true;
}

首先利用runtime.exec()執行指令,得到process,從process.getInputStream()中獲取回顯字元並列印,列印回顯時可能會出現中文亂碼,這個和操作系統編碼有關,我這里是GBK編碼,所以在new inputstreamReader時加入了編碼參數」GBK「

命令行字元串

如果需要調用cmd命令,如cd等,可寫」cmd c cd 目錄」。對於直接調用exe執行,則可以寫成」exe文件絕對路徑 參數」,在命令行字元串中,含有空格的路徑或者字元串應該再加上引號,即」」exe文件絕對路徑」 」參數」「

winRAR調用

我這里安裝目錄是C:/Program Files/WinRAR,將D:1.rar 解壓到D:,則寫成」」C:/Program Files/WinRAR/unRar.exe」 x -y D:/1.rar D:/」,x代表絕對路徑解壓,-y表示全部確定;壓縮的命令如下:「」C:/Program Files/WinRAR/rar.exe」 a -ep1 D:2.rar D:源目錄」,a表示添加文件到壓縮文件,-ep1表示排除基本目錄,如D:winrar ar這個目錄,如果沒有-ep1那麼壓縮包中會出現winrar目錄路徑,而加了之後就只將當前目錄打包,只有rar目錄

B. java瑙e帇90鍏嗗ぇ灝弞ip闇瑕佸氫箙

瑙e帇涓涓90鍏嗗ぇ灝忕殑zip鏂囦歡鎵闇鐨勬椂闂村彇鍐充簬澶氱嶅洜緔狅紝鍖呮嫭紜浠舵ц兘銆佹枃浠剁郴緇熼熷害銆佸帇緙╃畻娉曠瓑銆備竴鑸鎯呭喌涓嬶紝瑙e帇閫熷害杈冨揩錛岀壒鍒鏄鍦ㄧ幇浠h$畻鏈轟笂銆

濡傛灉浣犵殑璁$畻鏈洪厤緗杈冨ソ錛屽寘鎷澶勭悊鍣ㄩ熷害蹇銆佸ぇ鍐呭瓨瀹歸噺銆佸揩閫熺‖鐩樺瓨鍌ㄥ櫒絳夛紝閭d箞瑙e帇90鍏嗗ぇ灝忕殑zip鏂囦歡鍙鑳藉彧闇瑕佸嚑縐掗挓鍒板嚑鍒嗛挓鐨勬椂闂淬

鐒惰岋紝濡傛灉浣犵殑璁$畻鏈洪厤緗杈冧綆錛屽勭悊鍣ㄩ熷害鎱銆佸唴瀛樺歸噺杈冨皬銆佷綆閫熺‖鐩樼瓑錛岄偅涔堣В鍘嬫椂闂村彲鑳戒細鏇撮暱錛屽彲鑳介渶瑕佸嚑鍒嗛挓鍒板嚑鍗佸垎閽熴

鍊煎緱娉ㄦ剰鐨勬槸錛岃繖鍙鏄涓涓澶ц嚧鐨勪及璁★紝瀹為檯鎯呭喌鍙鑳藉洜涓浜鴻$畻鏈洪厤緗銆佸帇緙╂枃浠舵湰韜鐨勭粨鏋勫拰綆楁硶絳夊洜緔犺屾湁鎵涓嶅悓銆

濡傛灉浣犲凡緇忔湁浜嗕竴涓獄ip鏂囦歡錛屼綘鍙浠ュ皾璇曡В鍘嬪畠錛岀劧鍚庨氳繃瑙傚療瑙e帇榪囩▼涓鐨勮繘搴︽潯鎴栬℃椂鍣ㄦ潵浜嗚В瀹為檯瑙e帇鎵闇鐨勬椂闂淬傚傛灉浣犺繕娌℃湁zip鏂囦歡錛屼綘涔熷彲浠ュ皾璇曞壋寤轟竴涓綾諱技澶у皬鐨剒ip鏂囦歡錛岀劧鍚庤繘琛岃В鍘嬩互嫻嬭瘯鎵闇鐨勬椂闂淬

C. java解壓zip文件

import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;

/**
* 獲得zip文件里的所有文件
* @author Administrator
*
*/
public class ZipFile {

public ZipFile() throws IOException
{
java.util.zip.ZipFile zf = new java.util.zip.ZipFile("E:/Java/Project.zip");
Enumeration e = zf.entries();
while(e.hasMoreElements())
{
ZipEntry ze = (ZipEntry) e.nextElement();
if(!ze.isDirectory())
System.out.println(new String(ze.getName().getBytes("ISO-8859-1"), "GB2312"));
}
}
public static void main(String[] args) {
try {
new ZipFile();
} catch (IOException e) {
e.printStackTrace();
}
}

}

D. java中將一個文件夾下所有的文件壓縮成一個文件,然後,解壓到指定目錄.

import java.io.*;
import java.util.zip.*;
public class CompressD {
// 緩沖
static byte[] buffer = new byte[2048];
public static void main(String[] args) throws Exception {
// 來源
File inputDir = new File("C:\\CompressTest\\");
// 目標
FileOutputStream fos = new FileOutputStream("C:\\CompressTest.zip");
// 過濾
ZipOutputStream zos = new ZipOutputStream(fos);
// 壓縮
zip(inputDir.listFiles(), "", zos);
// 關閉
zos.close();
}
private static void zip(File[] files, String baseFolder, ZipOutputStream zos)
throws Exception {
// 輸入
FileInputStream fis = null;
// 條目
ZipEntry entry = null;
// 數目
int count = 0;
for (File file : files) {
if (file.isDirectory()) {
// 遞歸
zip(file.listFiles(), file.getName() + File.separator, zos);
continue;
}
entry = new ZipEntry(baseFolder + file.getName());
// 加入
zos.putNextEntry(entry);
fis = new FileInputStream(file);
// 讀取
while ((count = fis.read(buffer, 0, buffer.length)) != -1)
// 寫入
zos.write(buffer, 0, count);
}
}
}

E. java 解壓zip中文文件保存

用jdk自帶的zip工具做壓縮時,對中文支持不是很好。
建議使用ant.jar中的壓縮和解壓縮工具

F. java解壓zip文件

不好意思搞反了,這樣就更簡單了。
用這個構造方法ZipInputStream(InputStream in);接收傳過來的流,然後用這個類的getNextEntry()方法解壓縮文件,最後調用read(byte[] b, int off, int len)方法將數據寫入byte數組。
ZipInputStream zin = new ZipInputStream(in);
ZipEntry entry = null;
while((entry=zin.getNextEntry())!=null){
if(entry.isDirectory()||entry.getName().equals("..\\"))
continue;
BufferedInputStream bin = new BufferedInputStream(zin);
byte[] buf = new byte[];
bin.read(buf,0,1);
}

熱點內容
資料庫設計主要內容 發布:2025-01-16 05:02:02 瀏覽:12
存儲過程如何修改 發布:2025-01-16 05:01:55 瀏覽:633
照片壓縮包 發布:2025-01-16 04:56:56 瀏覽:742
手機存儲用到多少最好 發布:2025-01-16 04:56:19 瀏覽:781
ftp站點不能啟動 發布:2025-01-16 04:55:31 瀏覽:54
pythonip合法性 發布:2025-01-16 04:48:52 瀏覽:75
鋰電池用3a的充電器是什麼配置 發布:2025-01-16 04:26:43 瀏覽:35
好配置為什麼感覺打聯盟不流暢 發布:2025-01-16 04:23:02 瀏覽:900
我的世界java編輯伺服器信息 發布:2025-01-16 04:21:42 瀏覽:507
android撥號上網 發布:2025-01-16 04:13:25 瀏覽:97