![](/img/trans.png)
[英]what about one BufferedOutputStream wrap another 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.