从来没接触过压缩,求个代码,急用!

解决方案 »

  1.   

    java.util.zip 
    去这个包下找 吧
      

  2.   


        // 要压缩的文件,包含多个文件
        String[] filenames = new String[]{"filename1", "filename2"};
        
        // 创建一个字节数组用于读取文件
        byte[] buf = new byte[1024];
        try {
            // 指定压缩后的文件名字
            String outFilename = "outfile.zip";
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
        
            // 压缩文件
            for (int i=0; i<filenames.length; i++) {
                FileInputStream in = new FileInputStream(filenames[i]);
        
                out.putNextEntry(new ZipEntry(filenames[i]));
        
                // 压缩
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                out.closeEntry();
                in.close();
            }
            out.close();
        } catch (IOException e) {
        }
      

  3.   

    try {
    FileOutputStream fos = new FileOutputStream("c:/test/a.zip");
    ZipOutputStream zipOutputStream = new ZipOutputStream(fos);
    // ---
    zipOutputStream.putNextEntry(new ZipEntry("file_a.txt")); // 根路径中的文件
    zipOutputStream.write(new byte[] { 65, 65, 65 }); // 文件内容
    zipOutputStream.closeEntry();
    // ---
    zipOutputStream.putNextEntry(new ZipEntry("dir/file_b.txt")); // 目录下的文件
    zipOutputStream.write(new byte[] { 66, 66, 66 }); // 文件内容
    zipOutputStream.closeEntry();
    // ---
    zipOutputStream.putNextEntry(new ZipEntry("empty_dir/")); // 空目录
    zipOutputStream.closeEntry();
    // ---
    zipOutputStream.close(); // 一定要调用close()方法,否则生成的zip文件是不完整的
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }