利用ZipOutputStream和ZipInputStream直接压缩和解压字符串

来源:互联网 发布:淘宝达人开通 编辑:程序博客网 时间:2024/05/20 12:49

zip算法

/**entryname为压缩字符串条目,在下面只一个条目*/public static byte[] zipBytes(String entryname,String input) throws IOException {        byte[] buffer = new byte[1024];        ByteArrayOutputStream baos = new ByteArrayOutputStream();        ZipOutputStream zos = new ZipOutputStream(baos);        ZipEntry entry = new ZipEntry(entryname);        entry.setSize(input.getBytes().length);        zos.putNextEntry(entry);        int len;        ByteArrayInputStream in=new ByteArrayInputStream(input.getBytes());        while ((len = in.read(buffer)) > 0) {            zos.write(buffer, 0, len);        }        zos.closeEntry();        zos.close();        return baos.toByteArray();    }

unzip算法

public String unZipIt(String body){            byte[] buffer = new byte[2048];             try {                 ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(body.getBytes()));                 ZipEntry entry = zis.getNextEntry();                 ByteArrayOutputStream baos = new ByteArrayOutputStream();                 while(entry!= null) {                    System.out.println("Extracting: " +entry);                    int len;                    while ((len = zis.read(buffer)) > 0) {                        baos.write(buffer, 0, len);                    }                    entry=zis.getNextEntry();    //              baos.flush();                    baos.close();                 }                 zis.close();                 System.out.println(new String(baos.toByteArray()));                 return new String(baos.toByteArray());              } catch(Exception e) {                 e.printStackTrace();              }          return null;       }
原创粉丝点击