问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java项目部署在linux服务器上。想用java程序实现把某些特定文件压缩成rar文件,该如何实现?

发布网友 发布时间:2022-04-23 14:38

我来回答

3个回答

热心网友 时间:2023-10-18 22:50

回答一楼,在linux服务器上是可以通过命令压缩文件的,
回答搂主的下面是我做过测试的压缩和解压文件的代码:
//文件名:myZip.java
import java.io.*;
import java.util.*;
import java.util.zip.*;
/**
* <p>Title: 文件压缩和解压</p>
* <p>Description: 使用ZipInputStream和ZipOutputStream对文件
* 和目录进行压缩和解压处理</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: myZip.java</p>
* @author 杜江
* @version 1.0
*/
public class myZip{
/**
*<br>方法说明:实现文件的压缩处理
*<br>输入参数:String[] fs 压缩的文件数组
*<br>返回类型:
*/
public void ZipFiles(String[] fs){
try{
String fileName = fs[0];
FileOutputStream f =
new FileOutputStream(fileName+".zip");
//使用输出流检查
CheckedOutputStream cs =
new CheckedOutputStream(f,new Adler32());
//声明输出zip流
ZipOutputStream out =
new ZipOutputStream(new BufferedOutputStream(cs));
//写一个注释
out.setComment("A test of Java Zipping");
//对多文件进行压缩
for(int i=1;i<fs.length;i++){
System.out.println("Write file "+fs[i]);
BufferedReader in =
new BufferedReader(
new FileReader(fs[i]));
out.putNextEntry(new ZipEntry(fs[i]));
int c;
while((c=in.read())!=-1)
out.write(c);
in.close();
}
//关闭输出流
out.close();
System.out.println("Checksum::"+cs.getChecksum().getValue());
}catch(Exception e){
System.err.println(e);
}
}

/**
*<br>方法说明:解压缩Zip文件
*<br>输入参数:String fileName 解压zip文件名
*<br>返回类型:
*/
public void unZipFile(String fileName){
try{
System.out.println("读取ZIP文件........");
//文件输入流
FileInputStream fi =
new FileInputStream(fileName+".zip");
//输入流检查
CheckedInputStream csi = new CheckedInputStream(fi,new Adler32());
//输入流压缩
ZipInputStream in2 =
new ZipInputStream(
new BufferedInputStream(csi));
ZipEntry ze;
System.out.println("Checksum::"+csi.getChecksum().getValue());
//解压全部文件
while((ze = in2.getNextEntry())!=null){
System.out.println("Reading file "+ze);
int x;
while((x= in2.read())!=-1)
//这里是写文件,write是以byte方式输出。
System.out.write(x);
}
in2.close();
}catch(Exception e){
System.err.println(e);
}
}
/**
*<br>方法说明:读取Zip文件列表
*<br>输入参数:String fileName zip文件名
*<br>返回类型:Vector 文件列表
*/
public Vector listFile(String fileName){
try{
String[] aRst=null;
Vector vTemp = new Vector();
//zip文件对象
ZipFile zf = new ZipFile(fileName+".zip");
Enumeration e = zf.entries();
while(e.hasMoreElements()){
ZipEntry ze2 = (ZipEntry)e.nextElement();
System.out.println("File: "+ze2);
vTemp.addElement(ze2);
}
return vTemp;
}catch(Exception e){
System.err.println(e);
return null;
}
}
/**
*<br>方法说明:主方法
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String[] args){
try{
String fileName = args[0];
myZip myZip = new myZip();
myZip.ZipFiles(args);
myZip.unZipFile(fileName);
Vector dd = myZip.listFile(fileName);
System.out.println("File List: "+dd);
}catch(Exception e){
e.printStackTrace();
}
}
}

热心网友 时间:2023-10-18 22:50

我是外行人,问一句,在linux上能生成rar文件吗?

热心网友 时间:2023-10-18 22:51

linux的zip,rar是不行的,但是你说的那个压缩成rar,按照我的理解,你是想要在linux上运行一个java压缩算法是把,该算法就是rar压缩算法,艾,这个算法很成熟了,网上可以下的,至于在linux上运行更是简单了。

不要听信与一些算法,他们都是在网上着的

热心网友 时间:2023-10-18 22:50

回答一楼,在linux服务器上是可以通过命令压缩文件的,
回答搂主的下面是我做过测试的压缩和解压文件的代码:
//文件名:myZip.java
import java.io.*;
import java.util.*;
import java.util.zip.*;
/**
* <p>Title: 文件压缩和解压</p>
* <p>Description: 使用ZipInputStream和ZipOutputStream对文件
* 和目录进行压缩和解压处理</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: myZip.java</p>
* @author 杜江
* @version 1.0
*/
public class myZip{
/**
*<br>方法说明:实现文件的压缩处理
*<br>输入参数:String[] fs 压缩的文件数组
*<br>返回类型:
*/
public void ZipFiles(String[] fs){
try{
String fileName = fs[0];
FileOutputStream f =
new FileOutputStream(fileName+".zip");
//使用输出流检查
CheckedOutputStream cs =
new CheckedOutputStream(f,new Adler32());
//声明输出zip流
ZipOutputStream out =
new ZipOutputStream(new BufferedOutputStream(cs));
//写一个注释
out.setComment("A test of Java Zipping");
//对多文件进行压缩
for(int i=1;i<fs.length;i++){
System.out.println("Write file "+fs[i]);
BufferedReader in =
new BufferedReader(
new FileReader(fs[i]));
out.putNextEntry(new ZipEntry(fs[i]));
int c;
while((c=in.read())!=-1)
out.write(c);
in.close();
}
//关闭输出流
out.close();
System.out.println("Checksum::"+cs.getChecksum().getValue());
}catch(Exception e){
System.err.println(e);
}
}

/**
*<br>方法说明:解压缩Zip文件
*<br>输入参数:String fileName 解压zip文件名
*<br>返回类型:
*/
public void unZipFile(String fileName){
try{
System.out.println("读取ZIP文件........");
//文件输入流
FileInputStream fi =
new FileInputStream(fileName+".zip");
//输入流检查
CheckedInputStream csi = new CheckedInputStream(fi,new Adler32());
//输入流压缩
ZipInputStream in2 =
new ZipInputStream(
new BufferedInputStream(csi));
ZipEntry ze;
System.out.println("Checksum::"+csi.getChecksum().getValue());
//解压全部文件
while((ze = in2.getNextEntry())!=null){
System.out.println("Reading file "+ze);
int x;
while((x= in2.read())!=-1)
//这里是写文件,write是以byte方式输出。
System.out.write(x);
}
in2.close();
}catch(Exception e){
System.err.println(e);
}
}
/**
*<br>方法说明:读取Zip文件列表
*<br>输入参数:String fileName zip文件名
*<br>返回类型:Vector 文件列表
*/
public Vector listFile(String fileName){
try{
String[] aRst=null;
Vector vTemp = new Vector();
//zip文件对象
ZipFile zf = new ZipFile(fileName+".zip");
Enumeration e = zf.entries();
while(e.hasMoreElements()){
ZipEntry ze2 = (ZipEntry)e.nextElement();
System.out.println("File: "+ze2);
vTemp.addElement(ze2);
}
return vTemp;
}catch(Exception e){
System.err.println(e);
return null;
}
}
/**
*<br>方法说明:主方法
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String[] args){
try{
String fileName = args[0];
myZip myZip = new myZip();
myZip.ZipFiles(args);
myZip.unZipFile(fileName);
Vector dd = myZip.listFile(fileName);
System.out.println("File List: "+dd);
}catch(Exception e){
e.printStackTrace();
}
}
}

热心网友 时间:2023-10-18 22:50

我是外行人,问一句,在linux上能生成rar文件吗?

热心网友 时间:2023-10-18 22:51

linux的zip,rar是不行的,但是你说的那个压缩成rar,按照我的理解,你是想要在linux上运行一个java压缩算法是把,该算法就是rar压缩算法,艾,这个算法很成熟了,网上可以下的,至于在linux上运行更是简单了。

不要听信与一些算法,他们都是在网上着的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
校园专属沃派16元B套餐是什么样的 联通4g校园套餐16元B套餐的资费是怎样的 w7电脑逆战设置不卡win7装起后还玩起逆战不卡的电脑最低配置是多少_百... 逆战画面卡 有没有给电脑用的充电宝 充电宝和游戏本的奇妙搭配,这5款充电宝能给你的联想拯救者充电。 服务器lsass经常占用CPU50% 重启下就好,过一段时间又占用50%,进程中就... ...进程里这个程序一直占用50%的CPU关了之后又会自动出来,就是今天才突... 手机有网抖音刷不出来 开中式快餐利润怎么样 两个linux服务器之间传输压缩文件 用linux命令传输比xftp快吗? 用ftp怎么在服务器端解压压缩文件 压缩文件到服务器上 微信支付账户怎么注销。 我忘记支付密码了,想注销微信支付账号,但是账户里有钱怎么办 我想买基金定投买完以后怎么看明细 不是本人微信里面有钱如何注销微信支付账户? 怎样才能知道我所买的基金赚没赚钱,去哪看?和领取? 微信支付账户注销了,还有零钱怎么办? 微信支付里面有钱如何注销微信支付呢? 买的基金怎么知道是赚了钱了? 我刚刚学买基金,买后怎么才知道基金是赚了还是赔了?刚买的基金可以分红吗? 基金怎样知道自己的所买的基金是否赚到钱了? 微信里有钱可以注销吗? 怎么通过查询计算我购买的基金是赚是赔? 怎样看你的基金是赚了,还是赔了 微信零钱银行卡解绑后里面还有钱,怎么注销账号? 微信红包里有钱支付密码不知道怎么注销账户? 基金赚钱到底是怎么看的? 请问biubiu键盘的内容在哪个文件夹的哪个文件? 在服务器上把软件做成压缩包怎么做? 如何把LInux服务器上的数据进行压缩打包下载备份??? 服务器是linux 请问如何压缩网站上传? 需要压缩为gz格式吗? linux服务器上,压缩文件出错 FTP服务器中的压缩文件 阿里云服务器的压缩文件怎么解压 我在服务器(Linux系统)上有个.tar文件(8.5GB),我怎么才能把它解压出来? gzip压缩启动问题,服务器无法压缩动态文件! 服务器的一个文件夹无故自动被压缩 linux 大文件压缩会导致服务器死机吗 在网上能不能查到买火车票人的信息 帮朋友在12306买票,购票成功是不是证明身份证号以及姓名是正确的?因为买完之后看不见乘车人的身因 有HND经历的留学生怎么上海落户? 一年制英国硕士留学能不能在上海落户? 微信面对面建群多少人 英国伦敦艺术大学本科生能在上海落户吗? 英国留学应届能不能在北上广落户? 微信上的面对面建群同一时间可以加多少人? 英国硕士研究生(双硕)毕业回国上海落户积分多少 英国留学生上海不能落户