1. 程式人生 > >java中的6種stream

java中的6種stream

序列 字節流 字符 style color strong file 文件中 額外

1、文件字節流:InputStream 和 OutputStream,它的子類是FileInputStream和FileOutputStream。

2、文件字符流:Reader 和 Writer,它的子類是 FileReader 和 FileWriter。

3、緩沖流:BufferReader類創建的對象稱為緩沖輸入流,該輸入流的指向必須是一個Reader流,稱為BufferReader的底層流,底層流負責將數據讀入到緩沖區,BufferReader流的源就是這個緩沖區,緩沖輸入流再從緩沖區讀取數據;同樣的BufferWriter類創建的對象稱為緩沖輸出流,該輸入流的指向必須是一個Writer流,稱為BufferWriter的底層流,BufferWriter流負責將數據寫入到緩沖區

,底層流的源就是這個緩沖區,底層流再從緩沖區寫入數據到目的地。

4、數據流:DataInputStream和DataOutputStream創建的對象稱為數據輸入流和數據輸出流。

5、對象流:ObjectInputStream和ObjectOutputStream分別是InputStream和OutputStream的子類。ObjectInputStream和ObjectOutputStream創建的對象稱為對象輸入流和對象輸出流,對象輸出流使用WriteObject(Object object)方法將一個對象Obj寫入輸出流送往目的地對象輸入流則使用ReadObject(Object object)方法從源中讀取一個對象

到程序中。當使用對象流寫入或讀取對象時,要保證對象時序列化的,這是為了保證能把對象寫入到文件,並且從文件中正確讀取到程序中。一個類如果實現了Serializable接口,那麽這個類創建的對象就是序列化的對象,Serializable接口中的方法對程序是不可見的,因此實現該接口的類不需要實現額外的方法,當把一個序列化的對象寫入到對象輸出流時,JVM會自動的實現Serizlizable接口中的方法,按照一定格式的文本將對象寫入到目的地。

java中的6種stream