rt

解决方案 »

  1.   

    package tools;
    /*
     * Created on Apr 4, 2005
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     *//**
     * @author shaohua.luo
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    import java.io.IOException;
    import java.io.ByteArrayOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    import java.io.ByteArrayInputStream;
    import java.util.zip.ZipInputStream;public class CompressTest {
      public CompressTest() {
      }  public static byte[] unzip(byte[] zipBytes)
          throws IOException {
        ByteArrayInputStream bais = new ByteArrayInputStream(zipBytes);
    //    String entryName = new String("servletservice");
        ZipInputStream zis = new ZipInputStream(bais);
        zis.getNextEntry();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        final int BUFSIZ = 4096;
        byte inbuf[] = new byte[BUFSIZ];
        int n;
        while ( (n = zis.read(inbuf, 0, BUFSIZ)) != -1) {
          baos.write(inbuf, 0, n);
        }
        byte[] data = baos.toByteArray();
        zis.close();
        return data;
      }  public static byte[] zip(byte[] data)
          throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ZipEntry ze = new ZipEntry("servletservice");
        ZipOutputStream zos = new ZipOutputStream(baos);
        zos.putNextEntry(ze);
        zos.write(data, 0, data.length);
        zos.close();
        byte[] zipBytes = baos.toByteArray();
        return zipBytes;
      }  public static void main(String[] args)
          throws IOException {
        String a = "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+
        "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString " +
        "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+
        "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString ";
        byte[] abyte = a.getBytes();
        byte[] testbyte1 = null;
        byte[] testbyte2 = null;
        testbyte1 = zip(abyte);    //??1
    //    testbyte2 = unzip(testbyte1);    //??2
        //byte[]<->String<->byte[]
        String b = new sun.misc.BASE64Encoder().encode(testbyte1);
        byte[] testbyte3 = new sun.misc.BASE64Decoder().decodeBuffer(b);
        testbyte2 = unzip(testbyte3);    System.out.println(new String(testbyte2)+": " + testbyte1.length+ " " + a.length());  }}