日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Buffered缓存流

發布時間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Buffered缓存流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

處理流:

處理流是對一個已經存在的流的連接和封裝,利用的是裝飾設計模式,通過所封裝后的流進行功能調用實現數據讀寫,例如BufferedInputStream,處理流的構造器總是需要帶一個其他流的對象作為參數。一個流經過其他流的多次包裝,稱為流的連接,例如FileInputStream的對象經過BufferedInputStream包裝后,才使用BufferedInputStream的對象去調用讀寫數據的方法,那么這個過程就形成了一個流的連接。

? 讀寫流程示意:



加解密流程示意:




常用的處理流:

FileInputStreamFileOutputStream是基本的流。

?

緩存流:

BufferedInputStream

BufferedOutputStream

?

基本數據流:

DataInputStream

DataOutputStream

?

對象流:

ObjectInputStream

ObjectOutputStream

?

?

緩存流:

緩存流作為緩沖讀寫數據使用,它有一個大小為8k的緩存池,加上緩存流的話在讀取數據的時候每次就會一次性讀取8k,然后讀完了再讀取8k,輸出也是如此,所以能夠優化讀寫上的速度,但是只適合用于單個字節或少量字節的讀取或輸出上的事情上才有效果。因為如果是批量讀取的話,每次讀取的字節數量都比較大,就沒必要多此一舉去使用緩存流了,使用緩存流的話如果不是馬上調用close關閉,就需要調用flush方法來清理緩存。

? 流程示意:




代碼示例:

? 這是一個拷貝文件的代碼示例,用于對比讀取單個字節的情況下,使用緩存流和不使用緩存流的區別,并且對比批量讀取下使用緩存流和不使用緩存流的區別:

單個字節讀取使用緩存流的方式:



運行結果:




單個字節讀取不使用緩存流的方式:



運行結果:


從結果可以看出,緩存流在這種單個字節讀取的速度優化上效果是相當好。


批量讀取下使用緩存流的方式:



運行結果:




批量讀取下不使用緩存流的方式:



運行結果:

? 從結果可以看出,緩存流在這種批量字節讀取的速度優化上效果是相差無幾的,甚至有時候加上緩存流反而會變慢,所以在這種批量讀取的方式上不需要用緩存流。


轉載于:https://blog.51cto.com/zero01/1976622

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Buffered缓存流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。