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

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;
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值