java unrar压缩_用java解压缩rar文件 de.innosystec.unrar解压缩rar文件
这是利用de.innosystec.unrar解压缩rar文件.(他不支持中文和日文.下面是经本人改进后支持双字节的.同时实现了跨平台)
/**
* unRar method, extract rar file
*
* @param file_src Archive File
* @param extractPath extract Path
* @return boolean
* @exception Exception
*/
private static boolean unRar(File file_src,String extractPath) {
String os = System.getProperty(Const.getString(propertyOS)).toLowerCase();
File extractToFolder = new File(extractPath);
ReadOnlyAccessFile readOnlyAccessFile=null;
Archive archive=null;
try {
readOnlyAccessFile = new ReadOnlyAccessFile(
file_src);
archive = new Archive(readOnlyAccessFile);
final List fileHeaders = archive.getFileHeaders();
int actualaSize = 0;
for (FileHeader fileHeader : fileHeaders){
//String fileNameString=fileHeader.getFileName();//这是英文情况
//如果是象日文和中文那样的双字节字.get filenamebyte and remove error code
byte[] filebytes=fileHeader.getFileNameByteArray();
int endflg=0;
for(int i=0;i
if(filebytes[i]==0){
break;
}
}
//get filename
String fileNameString=new String(filebytes,0,endflg,"SJIS"); //这是日语编码.如果是中文系统就换成相应的编码.
if(os!=null && !os.startsWith("windows")){//linux,repalce "\" to "/"
fileNameString=fileNameString.replace("\\", System.getProperty("file.separator", null));
}
File unpackedFile = new File(extractToFolder, fileNameString);
File parentFolder = unpackedFile.getParentFile();
//create the parents tree
parentFolder.mkdirs();
if(Integer.toHexString(fileHeader.getUnpMethod()).equals("30")
& (Integer.toHexString(fileHeader.getUnpVersion()).equals("14"))){
actualaSize++;
}else{
FileOutputStream out=null;
try {
out = new FileOutputStream(unpackedFile);
archive.extractFile(fileHeader,out );
actualaSize++;
} catch (FileNotFoundException e) {
unpackedFile.delete();
parentFolder.delete();
}finally{
out.close();
}
}
}
} catch (Exception e) {
extractToFolder.delete();
return false;
}finally{
try {
readOnlyAccessFile.close();
} catch (Exception e1) {
;
}
}
return true;
}
java unrar压缩_用java解压缩rar文件 de.innosystec.unrar解压缩rar文件相关推荐
- java 对象压缩_理解Java对象:要从内存布局及底层机制说起,话说....
前言 大家好,又见面了,今天是JVM专题的第二篇文章,在上一篇文章中我们说了Java的类和对象在JVM中的存储方式,并使用HSDB进行佐证,没有看过上一篇文章的小伙伴可以点这里:< 这篇文章主要 ...
- java 字符串 压缩_用JAVA实现字符串压缩算法
public class Test3 { /** * 用JAVA实现字符串压缩算法. 将字符串 aaabcdda 编程实现将其转换为 3a1b1c2d1a : * * @param str * 需要转 ...
- java tiff 压缩_使用Java ImageIO进行Tiff压缩
我在将png转换为tiff时遇到问题.转换很顺利,但图像很大.我认为问题是我没有正确地进行压缩?任何人都有任何建议? 这是代码示例 public static void test() throws I ...
- java zip压缩_压缩工具
由于rar4版本以上的无法通过java代码进行解压,采用调用本地程序来进行解压 第一步:下载winrar 第二步:配置环境变量,只需要配置到安装目录即可,,重新打开命令窗口 第三步:单个文件进行测试 ...
- java如何压缩html代码,java 压缩html文件
java 压缩html文件 [2021-02-03 16:32:07] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- java web服务_将Java服务公开为Web服务
java web服务 本教程解决了开发人员面临的最实际的情况. 大多数时候,我们可能需要将某些现有服务公开为Web服务. 在项目生命周期的不同阶段可能会遇到这种情况. 如果这是初始阶段,那么您几乎是安 ...
- java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)
import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...
- java application程序_如何Java编写的application程序像exe一样方便shy;的运行
Java编写的application程序是否能够最终形成一个类似于exe一样的可执行文件,难道就只能用命令行运行??? ---------------------------------------- ...
- java核心教程_核心Java教程
java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...
最新文章
- Verilog赋值间延迟语句与赋值内延迟语句比较
- Android NDK调试定位错误
- gcc 参数 -fprofile-arcs -ftest-coverage作用
- c++ 删除文件_win7 系统电脑C盘哪些文件可以删除掉?
- 常见的通配符_技术干货 | 常见的mysql注入语句
- 北大青鸟的班主任好当吗_北大青鸟学校怎么样靠谱吗?
- 【转】粒子滤波简介以及相关技术探讨
- 《Java核心技术卷一》读书笔记(二)
- 0基础,如何快速学习自媒体,详细教程
- 新版闪讯破解无线wifi共享
- 部署 - 前端部署https服务,并配置安全证书
- python中close_python close()是什么?python close()定义及用法详解
- 【私有,不喜勿入】健康
- uniapp 启动页视频
- YIGO标准平台解决模态窗口不能刷新父界面的方法
- mac搜索不到wifi wtg_Mac电脑无法连接WiFi怎么办?教你解决无法联网的问题
- 数据分析您需要一个现代化的数据仓库
- 264Echarts - GL 路径图(Use linesGL to draw 1 million ny streets.)
- JAVA修炼之路的开启
- 微信小程序顶部渐变色实现
热门文章
- Java 递归实现树形菜单
- Autodesk ReCap-现实捕获技术
- DB2 license过期解决方案
- c# winform 无边框窗体 移动办法
- 如何更改Google文档的默认格式设置
- 在类xx中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)否则 JavaFX 应用程序类必须....
- C语言abs函数与fabs函数,函数abs 和fabs
- 07-图6 旅游规划
- android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context...
- 知识资源整理(持续更新)