天天看點

通過流實作檔案讀寫的方法(中)

2.2 字元流方式讀取寫入檔案

在“1.2.2”中提到,字元流主要由Reader和Writer作為基類。我們将使用這兩個類的派生類InputStreamReader和OutputStreamWriter實作檔案資料的讀寫。字元流與位元組流的關系如圖所示。

通過流實作檔案讀寫的方法(中)

2.2.1 檔案資料的寫入

使用OutputStreamWriter類可以實作字元流方式寫入檔案。該類是字元流通向位元組流的橋梁。

2.2.1.1 建立檔案流

OutputStreamWriter類是通過FileOutputStream類建立的。

FileOutputStream fos = new FileOutputStream(filePath);

OutputStreamWriter osw = new OutputStreamWriter(fos);

2.2.1.2 寫入檔案流

通過OutputStreamWriter類的write()方法實作檔案流的寫入。

osw.write(content);

其中,content是要寫入檔案的資料,其類型是String。在“1.2.2”中提到,OutputStreamWriter類是字元流,是以,write()的參數是String,可以直接将其寫入到流中,無需将其再變為byte[]。

2.2.1.3 關閉檔案流

如果不再使用字元流,需要将其關閉。而在使用字元流時也用到了位元組流,是以也需要将位元組流關閉。關閉流的順序與建立流的順序相反,要先關閉字元流,再關閉位元組流。

osw.close();

fos.close();

2.2.2 檔案資料的讀取

使用InputStreamReader類可以實作字元流方式讀取檔案。該類的使用與OutputStreamWrite類相似。

2.2.2.1 建立檔案流

InputStreamWriter類是通過FileInputStream類建立的。

FileInputStream fis = new FileInputStream(filePath);

InputStreamReader isr = new InputStreamReader(fis);

2.2.2.2 讀取檔案流

通過InputStreamReader類的方法read()讀取檔案流。

isr.read(content);

其中,content的類型是char[],用于儲存讀取到的檔案資料。

2.2.2.3 關閉檔案流

最後關閉字元流和位元組流。

isr.close();

fis.close();

繼續閱讀