对于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软件压缩包(ZIP RAR)解压后有很多后缀class的文件和文件夹,而没有jar文件
那是java文件的内容,你解压过头了,把jar文件也解压了,那你当然没法看到jar啊,如果你是解压zip文件就解压处class这种文件,建议用文件管理器,改文件的后缀名。如zip的改为jar。这样应该就可以了安装了,不需要再解压了。
希望我的回答对你有用
C. java解压zip或者tar.gz压缩包,如何获得被压缩文件的
使用Java处理ZIP和TGZ压缩包涉及ZipInputStream、ZipOutputStream和ZipFile类。当项目需要上传或下载ZIP包时,开发者通常会利用这些类进行操作。
在基础概念层面,压缩文件的生成涉及读取一个文件夹内容,创建ZipEntry并将其放入ZipOutputStream。然后,通过InputStream读取源文件内容,将其写入ZipOutputStream。这种流程形成了压缩文件的创建。
解压过程涉及一个特殊的File类,称为ZipFile。使用Enumeration类可以读取压缩文件夹中的文件。解压文件的过程开始于读取压缩文件夹中的文件,生成InputStream后将其写入解压输出流。此操作实现了文件的解压缩。
总结来说,本文介绍了Java中压缩文件的压缩与解压方式,提供了相关类的使用方法。希望对读者在项目开发中处理文件压缩与解压问题有所帮助。如果本文对您有帮助,请给予支持。
D. 用java实现ftp侧压缩文件的解压
我们在开发项目的时候,特别是B/S系统,经常会遇到要批量上传文件的需求,对此需求一般有如下几个解决方案(以B/S为例):1. 在客户端提供文件上传接口,一次上传一个文件2. 一次上传多个文件3. 将需要上传的文件打包,一次上传到服务器,并自动解凳脊庆压到指定目录1,2方法都有几个很明显的不足,用户工作量大,文件如果过大,在网络环境野局中,上传的效率低下,另外文件在不同的目录,是无法进行一次选择上传的.所以打包上传就成为了比较流行的批量文件上传的解决方案,下面就来一起讨论一下在java中如何实现: 主要功能需求: a. 上传文件,将文件保存在服务器 b. 读取服务器上压缩文件,解压到指定目录 下面就这两个需求说说编码实现上传: 使用了smartupload开源程序 参考链枣握接: http://hi..com/liuzy84/blog/item/556318f4fad1cc6fddc4741a.html
E. 在线等回答,请速度,Java中实现对文件夹的加密压缩,就是说压缩完后用解压工具解压时会提示输入密码。。
(1)网络传输状况不好(如断线过多,开的线程过多,服务器人太多导致不能连接太多等)导致下载下来的文件损坏!
(2)站点提供的的RAR压缩包本来就是损坏的(这个本站可以保证,所上传的视频及软件等都经过好几遍测试,绝对没问题)。
(3)所使用的下载工具不够完善,比如有的下载工具多开了几个线程后,下载的收尾工作很慢,有些时候下载到99%时数据就不再传输了,一定要人工操作才能结束(先停止下载接着再开始)。笔者就碰到过好几次这样的情况。结果是文件下载下来以后解压缩到快结束时CRC出错。
解决方法:本站为防止这样的事情发生,在每个压缩包里又加了一个备份,防止因以上原因导致的下载后不能用,还得重新下载的问题,只要你下载下来的那个压缩包里的备份是好的那就能把压缩包里的文件恢复能用。
步骤一:双击打开需要解压修复的压缩包,选择:工具——修复压缩文件。
步骤二:出现下边图片的修复框,等待修复完成,关闭窗口及解压缩窗口就可以了。
步骤三:这时你会发现你需要解压的压缩包旁边多了一个压缩包,名称为:fixed.***(你下载的视频名称).rar ,这个压缩包就是修复后的解压缩包,如果修复成功,解压这个名称为:fixed.***(你下载的视频名称).rar 的压缩包就可以了。
如果修复不成功,你再修复几次看看,如果不行,只有再重新下载了
F. java 中的war格式的压缩包怎么解压
你好,这些是打包好的部署包,将这些直接丢如Tomcat WebApp目录下就可以通过Web访问了,如果你想看源码,用解压缩软件都可以的,就看这包里面有没有源码了,zip ,winRAR ,7-zip都可以解压出来,如果想看源码,没有的话,找个反编译的软件把class文件拖进去就可以看到了..jd-gui 这个可以,网上找找