bufferedinputstream FileInputStream inputstream的比較


BufferedInputStream類相比InputStream類,提高了輸入效率,增加了輸入緩沖區的功能

 

不帶緩沖的操作,每讀一個字節就要寫入一個字節,由於涉及磁盤的IO操作相比內存的操作要慢很多,所以不帶緩沖的流效率很低

帶緩沖的流,可以一次讀很多字節,但不向磁盤中寫入,只是先放到內存里。等湊夠了緩沖區大小的時候一次性寫入磁盤,這種方式可以減少磁盤操作次數,速度就會提高很多

 

InputStream流是指將字節序列從外設或外存傳遞到應用程序的流
BufferedInputStream流是指讀取數據時,數據首先保存進入緩沖區,其后的操作直接在緩沖區中完成。

 

繼承關系是這樣的:
Java.lang.Object
     Java.io.InputStrean
          Java.io.FilterInputStream
                Java.io.BufferedInputStream

 

FileInputStream是字節流,BufferedInputStream是字節緩沖流,使用BufferedInputStream讀資源比FileInputStream讀取資源的效率高(BufferedInputStream的read方法會讀取盡可能多的字節),且FileInputStream對象的read方法會出現阻塞;

 

BufferedInputStream比FileInputStream多了一個緩沖區,執行read時先從緩沖區讀取,當緩沖區數據讀完時再把緩沖區填滿。

當每次讀取的數據量很小時,FileInputStream每次都是從硬盤讀入,而BufferedInputStream大部分是從緩沖區讀入。讀取內存速度比讀取硬盤速度快得多,因此BufferedInputStream效率高。

BufferedInputStream的默認緩沖區大小是8192字節。當每次讀取數據量接近或遠超這個值時,兩者效率就沒有明顯差別了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM