Buffered ReaderReader in Buffered ReaderReader in int size
檔案輸入輸出 • 字元: – 使用緩衝區來讀檔 Buffered. Reader(Reader in) //建立緩衝區字元讀取串流 Buffered. Reader(Reader in, int size) //建立緩衝區字元讀取串流,並設定緩衝區大小 Ex: File. Reader data. File=new File. Reader(“d: \number. txt”); Buffered. Reader bfr=new Buffered. Reader(data. File); 6
檔案輸入輸出 • 字元: – 將資料寫入緩衝區 Buffered. Writer(Writer out) //建立緩衝區字元寫入串流 Buffered. Writer(Writer out, int size) //建立緩衝區字元寫入串流,並設定緩衝區大小 Ex: File. Writer data. File=new File. Writer (“d: \number. txt”); Buffer. Writer bfw=new Buffered. Writer (data. File); 7
檔案輸入輸出 • 準備好欲讀取的檔案(rain. File. in),並建 立File. Reader物件。 • 根據File. Reader物件建立Buffered. Reader物 件。 • File. Reader是讀取檔案的字元流; Buffered. Reader是透過buffer讀取的字元串 流,讓資料暫時儲存到緩衝區。 in. File=new Buffered. Reader(new File. Reader("rain. File. in")); 9
檔案輸入輸出 • 準備好寫出的檔案(data. out),並建立 File. Writer物件。 • 根據File. Writer物件建立Buffered. Writer物件。 • File. Writer是寫入檔案的字元流; Buffered. Writer是透過buffer寫入的字元串 流,讓資料暫時寫至到緩衝區。 out. File=new Buffered. Writer (new File. Writer("data. out")); 10
檔案輸入輸出 • 讀取鍵盤輸入資料 – 資料來源 System. in – 讀取鍵盤資料 Input. Stream. Reader(System. in) – 放入暫存區 Buffered. Reader br = new Buffered. Reader(new Input. Stream. Reader(System. in)); 11
檔案輸入輸出 • 讀取鍵盤輸入資料 import java. io. *; class test 123 { public static void main(String args[]) throws IOException { Buffered. Reader br = new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. println(br. read. Line()); //讀入鍵盤資料並印出 } } 12
檔案輸入輸出-Method • Buffered. Reader的方法 主要功能 method 讀取單一字元 int read() 讀取字元陣列 int read (char[] cbuf, int off, int len) (off表示陣列索引值,len表 示讀取位元數) 跳過n個字元不讀取 long skip(long n) 讀取一行字串 String read. Line() 13
檔案輸入輸出-程式範例 import java. io. *; public class app 14_4 { public static void main(String args[]) throws IOException { File. Writer fw=new File. Writer("c: \random. txt"); Buffered. Writer bfw=new Buffered. Writer(fw); Buffered. Reader br = new Buffered. Reader(new Input. Stream. Reader(System. in)); for(int i=1; i<=5; i++) { bfw. write(Double. to. String(Math. random())); // 寫入亂數到緩衝區 bfw. new. Line(); // 寫入換行符號 } bfw. write(br. read. Line()); //由鍵盤輸入資料,並寫入檔案中 bfw. flush(); fw. close(); } } // 將緩衝區內的資料寫到檔案裡 // 關閉檔案 15
檔案輸入輸出-程式範例 import java. io. *; public class app 14_5 { public static void main(String args[]) throws IOException { File. Reader fr=new File. Reader("c: \random. txt"); Buffered. Reader bfr=new Buffered. Reader(fr); char str[]=new char[100]; //宣告size 100的字元陣列 System. out. println(bfr. read. Line()); //讀入一行資料 bfr. skip(3); //跳過3個字元 bfr. read(str, 5, 10); //讀入 10個字,放入str的陣列第 6格以後的位子 System. out. println(str); //印出str字串 fr. close(); // 關閉檔案 } } 16
- Slides: 16