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;
}