当前位置:首页 » 文件管理 » 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 01:51:27 浏览:274
全键盘编程键盘 发布:2025-01-16 01:38:59 浏览:422
尾货棉服直播间脚本 发布:2025-01-16 01:21:45 浏览:228
vb编程步骤 发布:2025-01-16 01:11:58 浏览:202
bb霜解压 发布:2025-01-16 01:11:11 浏览:597
编程怼人 发布:2025-01-16 00:53:08 浏览:761
建立共享服务器地址 发布:2025-01-16 00:26:40 浏览:565
android开机动画修改 发布:2025-01-16 00:26:26 浏览:872
怎么解压pc版游戏 发布:2025-01-16 00:16:32 浏览:122
v9更新到91有方舟编译器吗 发布:2025-01-16 00:11:49 浏览:500