반응형
자바의 압축기법중 하나인 Deflate, 해제기법인 Inflate를 이용한 압축, 해제 방법
압축하기
압축풀기
압축하기
// 바이트어레이를 압축해서 내보냄
public static byte[] compress(byte[] dataByte) throws IOException {
Deflater deflater = new Deflater();
deflater.setLevel(Deflater.BEST_COMPRESSION);
deflater.setInput(dataByte);
deflater.finish();
ByteArrayOutputStream bao = new ByteArrayOutputStream(dataByte.length);
byte[] buf = new byte[1024];
while(!deflater.finished()) {
int compByte = deflater.deflate(buf);
bao.write(buf, 0, compByte);
}
bao.close();
deflater.end();
return bao.toByteArray();
}
public static byte[] compress(byte[] dataByte) throws IOException {
Deflater deflater = new Deflater();
deflater.setLevel(Deflater.BEST_COMPRESSION);
deflater.setInput(dataByte);
deflater.finish();
ByteArrayOutputStream bao = new ByteArrayOutputStream(dataByte.length);
byte[] buf = new byte[1024];
while(!deflater.finished()) {
int compByte = deflater.deflate(buf);
bao.write(buf, 0, compByte);
}
bao.close();
deflater.end();
return bao.toByteArray();
}
압축풀기
// 바이트어레이를 압축해제해서 내보냄
public static byte[] decompress(byte[] data) throws IOException, DataFormatException {
Inflater inflater = new Inflater();
inflater.setInput(data);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
while(!inflater.finished()) {
int compByte = inflater.inflate(buf);
bao.write(buf, 0, compByte);
}
bao.close();
inflater.end();
return bao.toByteArray();
}
public static byte[] decompress(byte[] data) throws IOException, DataFormatException {
Inflater inflater = new Inflater();
inflater.setInput(data);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
while(!inflater.finished()) {
int compByte = inflater.inflate(buf);
bao.write(buf, 0, compByte);
}
bao.close();
inflater.end();
return bao.toByteArray();
}
반응형