[英]Memory with readAllBytes and read
我遇到了 ZIP 檔案的情況,我想知道什么是更好的解包方法。
我正確地理解,如果我們將使用InputStream.readAllBytes()和下一個OutputStream.write(ourAllBytes) - 這是不好的做法(例如,如果 arhive 的文件 < 2gb),我需要使用固定的字節數來讀寫( InputStream.read(buffer)和OutputStream.write(buffer, 0 len) )用於節省 RAM? 什么對我的情況更好?
為避免讀取和存儲 memory 中的所有輸入字節,您可以使用InputStream.transerTo(OutputStream)
方法:
try (var in = CreateYourInputStreamHere;
var out = CreateYourOutputStreamHere) {
in.transferTo(out);
}
在 Java 17 中,此方法將使用 8K 緩沖區,在處理下一個數據塊之前讀取和寫入單個 8K 數據塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.