当前位置:编程学习 > JAVA >>

将一个普通的文件比如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();
       }
    }
}  
这个代码只能实现把原先的文件覆盖掉,不知道原因在哪,请指教,谢谢。 压缩 --------------------编程问答-------------------- 没找到什么好方法,先解压,再压缩吧! --------------------编程问答--------------------
引用 1 楼 longtian1213 的回复:
没找到什么好方法,先解压,再压缩吧!

这样应该可以做到,重新压缩一下

不知道压缩包有没有添加文件的接口,没研究过 --------------------编程问答-------------------- 采用先解压再压缩的方案肯定能解决我这个问题,但因为实际项目中压缩的文件涉及的较多,重新压缩消耗的时间较长,所以不太愿意采用这种方案, --------------------编程问答-------------------- 程序里一般是不会这样做的,因为压缩率是一样的
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,