将一个普通的文件比如txt文件加入一个已经存在的压缩文件里
将一个普通的文件比如txt文件加入一个已经存在的压缩文件里,比如压缩包名为test.zip,里面已经含有test1.txt,现在就是需要实现将test2.txt打包进test.zip里,最后test.zip中会含有两个文件test1.txt和test2.txt,谢谢。测试例子如下:
package com.test;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class CompressToZip {
private void zip(String inputFileName) throws Exception {
File inputFile = new File(inputFileName);
String zipFileName = "d:\\批量打包.zip";// 打包后文件名字
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(
zipFileName), 1024));
// ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
// zipFileName));
out.putNextEntry(new ZipEntry(inputFile.getName()));
FileInputStream in = new FileInputStream(inputFile);
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
out.close();
}
public static void main(String[] args) {
CompressToZip test = new CompressToZip();
try {
test.zip("d:\\test1.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个代码只能实现把原先的文件覆盖掉,不知道原因在哪,请指教,谢谢。 压缩 --------------------编程问答-------------------- 没找到什么好方法,先解压,再压缩吧! --------------------编程问答--------------------
这样应该可以做到,重新压缩一下
不知道压缩包有没有添加文件的接口,没研究过 --------------------编程问答-------------------- 采用先解压再压缩的方案肯定能解决我这个问题,但因为实际项目中压缩的文件涉及的较多,重新压缩消耗的时间较长,所以不太愿意采用这种方案, --------------------编程问答-------------------- 程序里一般是不会这样做的,因为压缩率是一样的
补充:Java , Java EE