簡體   English   中英

什么時候使用read()或read(byte [])或BufferedInputStream?

[英]When to use read() or read(byte[]) or BufferedInputStream?

何時使用read()逐字節和何時使用read(byte[])數組的字節。 我認為讀取read(byte[])數組總是更好。 那么你能舉例說明在哪里使用read()逐字節或read(byte[])字節數組。 還是BufferedInputStream。

讀者也是如此。

有時您無法承受分配輸入緩沖區(非常有限的內存),因此您逐字節處理輸入。

BufferedInputStream真正要做的就是為您管理一個byte[]緩沖區,並在后台調用read(byte[]) 然后,您可以一次調用一個字節的read() ,而不必擔心系統調用的開銷。

如果您只想讀取N個字節並存儲它們,則分配一個byte[N]並將其傳遞給read(byte[])完全可以。

這是我一段時間以來所考慮的事情,我做出的決定可能會對你有所幫助。 所以,這是我的2美分。

在某些情況下,假設您想要讀取一百萬字節的數據。 傳遞這些字節的數組將需要順序分配一百萬個字節。 在受限制的環境中,這可能是非常有問題的。 因此,您最好逐字節讀取,然后根據要求處理它們。

BufferedInputStreamByteBuffer和sort只是幫助您以更輕松,更簡化的方式管理對字節數組的訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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