javaSE_压缩文件读写

1. 将字符串压缩到内存

private byte[] zip(String foo) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ZipOutputStream gzos = null;

try {

gzos = new ZipOutputStream(baos);

gzos.putNextEntry(new ZipEntry("Model"));

gzos.write(foo.getBytes("UTF-8"));

} catch (IOException e) {

e.printStackTrace();

} finally {

if (gzos != null)

try {

gzos.closeEntry();

} catch (IOException e) {

e.printStackTrace();

}

try {

gzos.close();

} catch (IOException ignore) {

ignore.printStackTrace();

}

}

 

return baos.toByteArray();

}

 

2. 解压存中zip数据

public String upZipFromByte(byte[] sourceZip){

StringBuffer sSourceStringBuf = new StringBuffer();

ByteArrayInputStream inputStream = new ByteArrayInputStream(sourceZip);    

ZipInputStream zipin = new ZipInputStream(inputStream);       

ZipEntry zipEntry = null; // 定义一个ZipEntry对象,用于接收压缩文件中  的每一个实体   

try {

if ((zipEntry = zipin.getNextEntry()) != null) {

System.out.println(zipEntry.getSize());

System.out.println(zipEntry.getCompressedSize());

int nReadSize;

byte [] unzipBuf = new byte [1024];

while ((nReadSize = zipin.read(unzipBuf, 0, 1024)) != -1){

String sContent = new String(unzipBuf, "UTF-8");

sSourceStringBuf.append(sContent.trim().toString());

unzipBuf = new byte [1024];

}

}

} catch (IOException e) {

System.out.println(e.getMessage());

}

try {

zipin.close();

} catch (IOException e) {

e.printStackTrace();

}

 

return sSourceStringBuf.toString();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值