簡體   English   中英

Memory 用 readAllBytes 讀

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

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