[英]compressing files in JAVA
我的項目要求我必須通過REST服務(使用jersey)接收文件並將其存儲在數據庫中。
文件大小約為2-4MB。
收到的文件可以是zip或pdf格式。 在存儲到數據庫之前,我想對其進行壓縮。
我在Google上搜索,發現有很多可用的類,例如GZip,Zip,Deflater ...我想使用Deflater,因為它看起來非常簡單。我編寫了以下用於zip的代碼。
Deflater deflater = new Deflater();
deflater.setInput(data);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
deflater.finish();
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buffer);
outputStream.write(buffer, 0, count);
}
outputStream.close();
byte[] output = outputStream.toByteArray();
byte[] output = outputStream.toByteArray();
有人可以為我的用例提出建議嗎?如果我使用上面的代碼很好,還是必須使用其他一些類來執行相同的操作。
謝謝,凱蒂
ByteArrayOutputStream將壓縮的輸出緩存在內存中。 您必須將其包裝在FileOutputStream周圍,以防在寫入大文件時出現任何OOM問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.