兩者分別為InputStreamReader和OutputStreamWrtier的子類;
有關(guān)InputStreamReader和OutputStreamWrtier移步
http://www.reibang.com/writer#/notebooks/3732626/notes/3446668
FileReader(文件讀出流)
-
構(gòu)造函數(shù)
1.FileReader (File file);接收一個File對象表示從該對象處讀取數(shù)據(jù)杖狼;
2.FileReader (String name);接受一個文件的字符串地址;
-
方法
(1)read()方法繼承自InputStreamReader
1.public int read()幢痘,空參數(shù)read方法每次從流中讀取一個字符長度的數(shù)據(jù)栖疑;返回值是對應字符的編碼;
2.public int read(char[] cbuf, int offset, int length),每次從流中讀取length字符長度的數(shù)據(jù)秘案,存入指定char[]數(shù)組總從offset出開始存儲熊咽;返回值是讀取了多少個字符
3.public int read(char[] cbuf)返回值是讀取了多少個字符
(2)String getEncoding() 返回正在讀取的流中的編碼形式
(3)注意:需要關(guān)閉輸出流
-
例子
// 第一步指定輸入流位置 File file = new File("d:\\text.txt");//hello java! //建立文件輸入流 FileReader input = new FileReader(file); long length = file.length(); char[] c =new char[(int)length]; //循環(huán)讀取 int len = 0; while((len = input.read() ) != -1){ System.out.print(len + ",");//104,97,108,108,111,32,106,97,118,97,33, } //while((len = input.read(c)) != -1){
// System.out.println(len);//11
// }
input.close();
注意同一個文件在一個程序只能讀取一次莫鸭,不是因為len被置為-1了,而是流指針已經(jīng)到了流的最后横殴。即read()返回的值已經(jīng)為-1被因;除非你再見立一條流來讀取卿拴。
FileWriter
-
構(gòu)造函數(shù)
1.FileWriter (File file);接收一個File對象表示從往該文件處寫數(shù)據(jù);
2.FileWriter (File file梨与,Boolean append);append為true時候在文件結(jié)尾處接著寫入堕花。
3.FileWriter (String name);接收一個文件的字符串地址;
4.FileWriter (String name粥鞋,Boolean append);同2.
-
方法
(1)write():
1.public void write(int c);//c是指定Unicode編碼中字符對應的整數(shù)值
2.public void write(char[] cbuf,int off, int len);
3.public void write(String str, int off, int len);
4.public void write(String str);//字符流相比于字節(jié)流可以直接寫入字符串
- 例子
// 第一步指定輸入流位置
File file = new File("d:\text1.txt");//hello java!
//建立文件輸入流
FileWriter fw = new FileWriter(file,true);
String str = "hello android!!!!!";
//寫入數(shù)據(jù)
fw.write(str);
fw.write(111);
fw.close();