java 文件压缩及解压缩
java操作windows命令(Rar.exe)执行文件压缩
// String srcPath = "D:\\test";// 被压缩文件夹String srcPath = "D:\\test.txt";// 被压缩文件
String destPath = "D:\\test.rar";// 压缩后文件
String rarexePath = "C:\\Program Files\\WinRAR\\Rar.exe"; // 电脑系统中WinRAR安装路径 未安装出错
String[] rarcmd = { rarexePath, "a", destPath, srcPath };
Runtime rt = Runtime.getRuntime();
rt.exec(rarcmd);
java操作windows命令(UnRAR.exe)执行文件解压缩
String srcPath = "D:\\test.rar";// 压缩文件String destPath = "D:\\";// 解压缩后路径
String unrarexePath = "C:\\Program Files\\WinRAR\\UnRAR.exe"; // 电脑系统中WinRAR安装路径 未安装出错
String[] unrarcmd = { unrarexePath, "x", srcPath, destPath };
Runtime rt = Runtime.getRuntime();
rt.exec(unrarcmd);
java操作第三方jar包执行rar解压缩
// 引用java-unrar-0.3.jar和commons-logging-1.1.3.jarString rarFile = "d:/test.rar";
String destDir = "d:/";
// 保证文件夹路径最后是"/"或者"\"
char lastChar = destDir.charAt(destDir.length() - 1);
if (lastChar != \'/\' && lastChar != \'\\\') {
destDir += File.separator;
}
// 根据类型,进行相应的解压缩
String type = rarFile.substring(rarFile.lastIndexOf(".") + 1);
if ("rar".equals(type)) {
// 压缩文件
Archive a = new Archive(new File(rarFile));
FileOutputStream fos = null;
FileHeader fh = a.nextFileHeader();
while (fh != null) {
if (!fh.isDirectory()) {
// 1 根据不同的操作系统拿到相应的 destDirName 和 destFileName
String compressFileName = fh.getFileNameString().trim();
String destFileName = "";
String destDirName = "";
if (File.separator.equals("/")) {
// 非windows系统
destFileName = destDir + compressFileName.replaceAll("\\\\", "/");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("/"));
} else {
// windows系统
destFileName = destDir + compressFileName.replaceAll("/", "\\\\");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("\\"));
}
// 2 创建文件夹
File dir = new File(destDirName);
if (!dir.exists() || !dir.isDirectory()) {
dir.mkdirs();
}
// 3 解压缩文件
fos = new FileOutputStream(new File(destFileName));
a.extractFile(fh, fos);
fos.close();
fos = null;
}
fh = a.nextFileHeader();
// 关闭流
}
a.close();
a = null;
} else {
throw new Exception("不是rar格式的压缩包!");
}
以上是 java 文件压缩及解压缩 的全部内容, 来源链接: utcz.com/z/391298.html