3 面向字元的輸出流

2021-06-23 10:01:59 字數 1884 閱讀 7027

面向字元的輸出流都是類 writer 的子類,其類層次結構如圖 10-5 所示。

圖10-5 writer的類層次結構圖

表 10-3 列出了 writer 的主要子類及說明。

表 10-3 writer 的主要子類 類名

功能說明

chararraywriter

寫到字元陣列的輸出流

bufferedwriter

緩衝輸出字元流

pipedwriter

輸出管道

outputstreamwriter

轉換字元到位元組的輸出流

filterwriter

過濾輸出流

stringwriter

輸出到字串的輸出流

printwriter

包含 print()和 println()的輸出流

filewriter

輸出到檔案的輸出流

writer 所提供的方法如表 10-4 所示。

表 10-4 writer 的常用方法 方法

功能描述

void close()

關閉輸出流

void flush()

將緩衝區中的資料寫到檔案中

void writer(int c)

將單一字元 c 輸出到流中

void writer(string str)

將字串 str 輸出到流中

void writer(char ch)

將字元陣列 ch 輸出到流

void writer(char ch, int offset, int length)

將乙個陣列內自 offset 起到 length 長的字元輸出到流

filewriter 類是 writer 子類 outputstreamwriter 類的子類,因此 filewriter 類既可以使用 writer類的方法也可以使用 outputstreamwriter 類的方法來建立物件。

在使用 filewriter 類寫入檔案時,必須先呼叫 filewriter()構造方法建立 filewriter 類的物件,再呼叫 writer()方法。filewriter 構造方法的格式為:

public filewriter(string name);  //根據檔名建立乙個可寫入的輸出流物件

public filewriter(string name,boolean a);  //a 為真,資料將追加在檔案後面

【例 10-3】利用 filewriter 類將 ascⅱ字元寫入到檔案中(

檢視源**

)。執行後程式後,開啟 ep10_3.txt 檔案,顯示內容為:

!"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyzbufferedwriter 類是用來將資料寫入到緩衝區。使用時必須建立 filewriter 類物件,再以該物件為引數建立 bufferedwriter 類的物件,最後需要用 flush()方法將緩衝區清空。bufferedwriter類有兩個構造方法,其格式為:

public bufferedwriter(writer out);  //建立緩衝區字元輸出流

public bufferedwriter(writer out,int size);  //建立輸出流並設定緩衝區大小

【例 10-4】利用 bufferedwriter 類進行檔案複製(

檢視源**

)。需要注意的是,呼叫 out 物件的 write()方法寫入資料時,不會寫入回車,因此需要使用newline()方法在每行資料後加入回車,以保證目標檔案與原始檔相一致。

字元輸出流

writer filewriter filewriter的注意事項 1.filewriter的內部也是維護了乙個 1024個字元的 字元陣列,當我們在寫入資料到磁碟的時候,實際上這個類 是先將這個 資料寫入到了 內部維護的 1024個字元的 字元陣列中 以下三種情況 才會真的將 內部維護的陣列中的資...

IO流 字元輸入流 輸出流,緩衝字元輸入流 輸出流

輸出字元流 緩衝字元輸入流 緩衝字元輸出流 輸入字元流 輸出字元流 filereader的用法 找到目標檔案 建立資料的輸入通道 讀取資料 關閉資源 方法一 public static void readtest1 throws ioexception filereader.close 方法二 使用...

字元輸入輸出流

注意 在寫出的時候一定要注意要記得清空緩衝區!字元輸入流 filereader 跟fileinputstream使用的方式和方法一樣 不過返回的資料型別為 char 型別的,所以我們要用 char 字串陣列接受 方法close 關閉輸入流 int read 從輸入流讀取下一字元 int read c...