簡體   English   中英

在JAVA中壓縮文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM