ARJ
是由
DOS
下曾红极一时的
ARJ
压缩而成的文件格式,具备功能强大、压缩率高等优点。尽管如今没有了往日的辉煌,但使用范围依然广泛。我们熟知的
*.JAR
就是
ARJ
作者研究的另外一种超强压缩格式,其压缩率比
ARJ
更高,但两者并不兼容。
由于最近一个项目,需要先将数据库中表数据以
txt
形式导出,然后再打包成
ARJ
,上传到
FTP
服务器中。开始一直苦于如何将
txt
打包成
ARJ
文件。曾向一位经验极为丰富的同事请教,她直接发了个网址给我,打开一看,却是一个装在
windows
上的应用。可我要的是通过
Java
去实现这一功能。当时郁闷可想而知
,
沉思中(其实是郁闷中)
....
当一个人郁闷到极限的时候,什么事都可能发生。没错,突然想起
Runtime
类中不是有个
exec(String command)
方法可以用来在单独的进程中执行指定的字符串命名吗。这样只要我把
ARJ
执行文件配置在系统的环节变量中,然后通过
exec(String command)
方法去执行命名不久可以了吗。
心动不如行动,立马开始编写程序:
首先,将
ARJ
应用装在如下目录
C:\ARJ
其次,配置系统环节变量,也就是在
path
中加上
;C:\ARJ
,在开始
->
运行
->CMD
中输入
ARJ
只要不出现
'ARJ' 不是内部或外部命令,也不是可运行的程序或批处理文件。就说明你配置成功了。
最后,就是编写
Java代码了,如下:
import java.io.IOException;
public class Execute {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec("ARJ A C:/dcb_manage/0001/receive.ARJ C:/dcb_manage/0001/*.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这样,就将我C:/dcb_manage/0001/目录下的所有txt文件,打成了一个ARJ包。上面代码生成的ARJ包目录是C:/dcb_manage/0001/receive.ARJ
A:代表ARJ程序将进行压缩操作,执行压缩时此参数必须存在(更多参数设置,请上网搜索)
PS:虽然这不是纯java去实现ARJ压缩,但想要的功能确已达到,不得已而为之,哈哈^_^。