簡體   English   中英

BufferedOutputStream的目的是什么?

[英]what's the purpose of BufferedOutputStream?

我想知道BufferedOutputStream的用途,使用它時的性能提升?

以下是來自BufferedOutputStream的API的行:

該類實現緩沖輸出流。 通過設置這樣的輸出流,應用程序可以將字節寫入底層輸出流, 不必為寫入的每個字節調用底層系統。

它可以在緩沖區內完成大部分操作,而無需調用底層系統。

例如,考慮寫入文件:沒有緩沖區,它必須為每個字節進行系統調用,這顯然很慢。

顧名思義, BufferOutputStream有一個內部緩沖區( byte[] ),首先復制各個小寫入的內容。 當緩沖區已滿或刷新流或關閉流時,它們將寫入底層的OutputStream 如果對於底層OutputStream每次寫入操作都存在(相對較大的)固定開銷,這可能會產生很大的不同,就像FileOutputStream (必須進行操作系統調用)和許多壓縮流的情況一樣。

同時,許多基於流的庫使用自己的緩沖(如XML和JSON編寫器),並且使用BufferedOutputStream沒有任何好處。 但它自己的開銷相對較低,因此風險不大。

BufferedOutputStream提供輸出數據緩沖,通過存儲要寫入緩沖區的值並在緩沖區填充或調用flush()方法時實際寫出來提高效率。

Java BufferedOutputStream類用於緩沖輸出流。 它在內部使用緩沖區來存儲數據。 與將數據直接寫入流中相比,它提高了效率。 因此,它使性能快速。

暫無
暫無

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

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