1. 程式人生 > >IO流(成對出現)小結

IO流(成對出現)小結

InputStream、OutputStream、Reader、Writer四個頂層抽象類。
只要不是文字檔案,讀都用read();文字檔案用readLine();

InputStream(抽象類):輸入流的根,處理位元組。此類中有一個read()方法,這個方法一次只讀取一個位元組,返回結果即為讀取到的位元組。如果讀到頭了則返回-1。

Outputstream(抽象類):輸出流的根。處理位元組。此類中有一個write()方法,一次只寫一個位元組(由引數傳入),沒有返回值。

(1)FileInputStream:最常用的類,把存在磁碟上檔案的內容讀到到程式中,
(2)FileOutputstream:最常用的類,把程式中處理的結果寫到檔案中去

網路io:存在其他裝置上的檔案(或者其他伺服器上的資源)的輸入輸出(不是本地)
對於大多數檔案除了.exe的檔案,都是看的,處理的是字元,就用reader或者writer。

(1)Reader。輸入流。處理字元。Read()方法一次讀取一個字元(兩個位元組),返回結果為讀取的字元對應的int值。如果讀到頭了返回-1
(2)Writer。輸出流。處理字元。Write()方法一次寫一個字元(由引數傳入),沒有返回值。
(3)處理字元的時候要設定字符集。對於java來說是utf-8

①Filereader:面向字元的文字檔案(讀進來)
Filewriter:面向字元的文字檔案(寫出去)

四種緩衝流

BufferedInputStream。帶緩衝區的輸入流。讀位元組。
BufferedOutputStream。帶緩衝區的輸出流。寫位元組。
BufferedReader。帶緩衝區的輸入流。讀字元。 readline處理文字檔案
BufferedWriter。帶緩衝區的輸出流。寫字元。

用bufferedinputstream(面向位元組)
用buffedoutputstream寫

用bufferedreader(面向字元)
用bufferedwriter寫。
java提供了一種換行機制,只有bufferedwriter有,叫做br.newLine();自動根據執行時環境的作業系統生成對應的換行符。

2個轉換流

InputStreamReader。將InputStream轉換為Reader
OutputStreamWriter。將OutputStream轉換為Writer

2個列印流

PrintStream:針對面向位元組的列印
Printwriter(綠色標記為常用):針對面向字元的列印。工作中使用頻率最高

2個二進位制處理流(基本不用)

Datainputstream
Dataoutputstream

Java建立物件的四種方式

1.New構造方法
2.反序列化、序列化
3.Object.clone現在不用了,被序列化和反序列化替代了。因為object只負責淺克隆,基本型別。深克隆是引用型別,需要你自己讀取。
4.反射機制