将一个普通的文件比如txt文件加入一个已经存在的压缩文件里,比如压缩包名为test.zip,里面已经含有test1.txt,现在就是需要实现将test2.txt打包进test.zip里,最后test.zip中会含有两个文件test1.txt和test2.txt,谢谢。普通文件打包压缩加入

解决方案 »

  1.   

    用ant.jar里的方法ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
    new FileOutputStream("c:/1.zip"), 1024));
    zos.putNextEntry(new ZipEntry("filename"));
    zos.setEncoding("GB2312");
    zos.closeEntry();
    zos.close();
      

  2.   

    测试例子如下:
    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();
           }
        }
    }