Simple String Compression Functions

public static final byte[] compress(String str) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ZipOutputStream zout = new ZipOutputStream(out);
zout.putNextEntry(new ZipEntry("0"));
zout.write(str.getBytes());
zout.closeEntry();
byte[] compressed = out.toByteArray();
zout.close();
return compressed;
}

public static final String decompress(byte[] compressed) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(compressed);
ZipInputStream zin = new ZipInputStream(in);
ZipEntry entry = zin.getNextEntry();
byte[] buffer = new byte[1024];
int offset = -1;
while((offset = zin.read(buffer)) != -1) {
out.write(buffer, 0, offset);
}
String decompressed = out.toString();
out.close();
zin.close();
return decompressed;
}

public static final void main(String[] args) {
String str = "Compress this string/r/n"
"Compress this string/r/n"

"Compress this string/r/n"
"Compress this string/r/n"

"Compress this string/r/n"
"Compress this string/r/n"

"Compress this string/r/n"
"Compress this string/r/n";
try {
byte[] compressed = compress(str);
int compressedSize = compressed.length;
String decompressed = decompress(compressed);
int decompressedSize = decompressed.getBytes().length;
System.out.println("Compressed Size = "
compressedSize);
System.out.println("Decompressed Size = " + decompressedSize);
} catch(IOException e) {
e.printStackTrace();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值