包裝流和緩衝流

2021-07-23 10:02:47 字數 1509 閱讀 7605

處理流/包裝流

(相對於節點流更高階

)裝飾設計模式

/包裝模式:

1:隱藏了底層的節點流的差異

,並對外提供了更方便的輸入

/輸出功能

,讓我們只關心高階流的操作.

2:使用處理流包裝了節點流

,程式直接操作處理流

,讓節點流與底層的裝置做

io操作.

實際識別處理流/包裝流非常簡單,只要流的構造器引數不是乙個物理節點,而是已經存在的流,那麼這種流就一定是處理流,而所有節點流都是直接以物理

io節點作為構造器引數的。

使用處理流的優勢:

1.使用處理流進行輸入輸出操作更簡單

2.使用處理流的執行效率更高

什麼是緩衝流:

是乙個包裝流,目的起緩衝作用

.包括:

bufferedinputstream:

bufferedoutputstream:

bufferedreader:

bufferedwriter:

int read():每次都從磁碟檔案中讀取乙個位元組

.  直接操作磁碟檔案效能極低.

解決方案:定義乙個陣列作為緩衝區.

byte buffer = new byte[1024]; 該陣列其實就是乙個緩衝區.

一次性從磁碟檔案中讀取1024個位元組

.  如此以來

,操作磁碟檔案的次數少了

,效能得以提公升.

提供的預設快取區大小是8192(1024*8),我們一般不用修改大小

.為了提供

io效能

/效率,操作位元組和字元流都習慣使用緩衝流給包裝起來.

位元組緩衝流:

//位元組緩衝流

public class bufferstreamdemo

bin.close();

//位元組緩衝輸出流

bufferedoutputstream bout = new bufferedoutputstream(new fileoutputstream("text/hello.txt",true));

//io操作

bout.write("hhhh2333333".getbytes());

bout.write("hhhh2333333".getbytes());

bout.close();

}}

字元緩衝流:

//字元緩衝流

public class bufferwriterreaderdemo

//string readline()

string line = null;

while((line = in.readline()) != null)

in.close(); }

}

檔案流和緩衝流

按照處理資料的單位的不同 位元組流,字元流 處理的文字檔案 按照角色不同 節點流 直接作用於檔案的 處理流 檔案流 節點流 fileinputstream fileoutputstream filereader filewriter 緩衝流 有重新整理 bufferedinputstream buf...

IO流 位元組緩衝流,字元緩衝流

處理流 裝飾流 位元組緩衝流,字元緩衝流 用於提高位元組流的效能 bufferedinputstream,bufferedoutputstream 位元組緩衝流 bufferedinputstream is newbufferedinputstream new fileinputstream fil...

緩衝流之字元緩衝流

字元緩衝流 字元緩衝輸入流 bufferedreader 字元緩衝輸出流 bufferedwriter 完成文字資料的高效的寫入與讀取的操作 1字元緩衝輸出流 bufferedwriter void newline 根據當前的系統,寫入乙個換行符 public static void method0...