如何压缩文件,不是用Jar工具,而是在Jsp程序里面压缩指定文件?

ckj2018 2002-12-18 08:21:05
在我做的程序里面,有一块设计到将生成的数据库文件(几个)压缩成一个.zip文件,
请问各位大虾,我如何操作,用到哪些类可是实现这些??

谢谢。
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckj2018 2002-12-19
  • 打赏
  • 举报
回复
是的,我也在用,但是设计到一个问题,请看我的代码:

FileOutputStream f = new FileOutputStream("c:/test.zip");
ZipOutputStream out = new ZipOutputStream (f);

out.putNextEntry(new ZipEntry("1.dbf"));
//可以写内容
out.closeEntry();
out.putNextEntry(new ZipEntry("2.dbf"));
out.closeEntry();
out.putNextEntry(new ZipEntry("3.dbf"));
out.closeEntry();
out.finish();
情况是这样的,在我的硬盘某个目录下面有三个dbf文件,我想将他们压缩为一个
.zip文件,我不知道应该如何修改这段代码。
请大虾指点,谢谢。
wks9527 2002-12-19
  • 打赏
  • 举报
回复
我的一段代码,能用的,不过要提醒你,最好先将要压缩的文件目录组织好,否则压缩包里的路径会很长:

public void zipper() throws Exception {
File zippedfile = new File("c:/abc.zip");
FileOutputStream fos=new FileOutputStream(zippedfile);
BufferedOutputStream bos=new BufferedOutputStream(fos);
ZipOutputStream zipoutputstream = new ZipOutputStream(bos);
FileInputStream fileinputstream;
BufferedInputStream bufferedinputstream;
File file;
for(int i=0;i<MAX_FILE_ALLOW;i++) {
if(this.aList[i]=="") //file name array
break;
file=new File(this.aList[i]);
fileinputstream = new FileInputStream(file);
bufferedinputstream = new BufferedInputStream(fileinputstream);
ZipEntry zipentry = new ZipEntry(file.toString());
//ZipEntry zipentry = new ZipEntry(file.getName());
//ZipEntry zipentry = new ZipEntry("aaa");
zipentry.setMethod(ZipEntry.DEFLATED);
zipoutputstream.putNextEntry(zipentry);
byte b[] = new byte[512];
int len;
while((len=bufferedinputstream.read(b)) != -1){
zipoutputstream.write(b,0,len);
}
zipoutputstream.flush();
}
zipoutputstream.closeEntry();
zipoutputstream.close();
}
leonzhao 2002-12-19
  • 打赏
  • 举报
回复
java.util.jar 包
java.util.zip 包

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧