나는 inputstream의원래
public InputStream compress(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
byte[] inBytes = IOUtils.toByteArray(inputStream);
gzipOutputStream.write(inBytes);
ByteArrayInputStream retStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
gzipOutputStream.close();
return retStream;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
그것은 비슷한 크기의 스트림을 반환를 압축 작성한이 코드의의 유사한 크기를 반환합니다. 코드에 버그가 있습니까?
@Test
public void test() throws IOException {
try {
in = this.getClass().getResourceAsStream("/testimage.jpg");
} catch (NullPointerException e) {
logger.log(Level.SEVERE, "Exception reading file in test - ", e);
}
compress(in);
}
어떤 종류의 데이터를 압축하려고합니까? 텍스트, 이미지, 오디오? 몇 가지 예를 들어 주시겠습니까? 일부 입력 및 출력 크기? –
압축 된 아카이브의 출력 크기를 어떻게 보장할지는 없습니다. 경우에 따라 원본보다 클 수 있습니다. 대부분의 그림, mp3, .mpg 파일은 압축되지 않습니다. 데이터가 이미 중복되지 않았기 때문입니다. – Dariusz
이미지 파일을 압축하려고했습니다. –