IO-字符流-FileReader

FileReader 讀數據java

構造方法:數組

FileReader(String fileName) 傳遞要讀取的文件名稱ide

成員方法:spa

int read() 讀取單個字符並返回對象

int read(char[] cbuf) 一次讀取一個字符數組的數據,返回的是實際讀取字符的個數.資源


輸入流讀文件的通常步驟:it

1.建立輸入流對象io

2.調用輸入流對象的對數據方法class

3.釋放資源效率

舉例:打印文件中的內容到公屏上,一次讀取一個字符

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class DemoFileReader {
public static void main(String[] args) throws IOException {
// 建立輸入流對象
FileReader fr = new FileReader("a.txt");
int ch;
// 調用輸入流方法讀取數據的方法
/*
* ch != -1 ch=fr.read(); 故:(ch = fr.read()) != -1
*/
//
while ((ch = fr.read()) != -1) {
System.out.println((char) ch);
}
// 釋放資源
fr.close();
}
}



注意: a.txt必須存在,若是不存在會報系統找不到文件異常


2.上個範例是把文本內容讀取出來打印到公屏上,若是是寫入到其餘文件,是否是就變成複製了呢

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class DemoCopyFile {
public static void main(String[] args) throws IOException {
//建立輸入流對象
FileReader fr = new FileReader("a.txt");
//建立輸出流對象
FileWriter fw = new FileWriter("Copya.txt");
int ch;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
//釋放資源
fw.close();
fr.close();
}
}


上面的例子是一次讀寫一個字符複製文本文件,效率比較低.接下來咱們看看 成員方法中一次一個字符數組的狀況.

public class DemoCopyFile {
public static void main(String[] args) throws IOException {
//建立輸入流對象
FileReader fr = new FileReader("a.txt");
//調用輸入流對象讀取數據的方法
char[] chs = new char[1024];
int len;
/*while一共作了三件事
* 1.fr.read(chs)將數據讀取到數組中
* 2.len=fr.read(chs) 把讀取到的有效個數複製給len
* 3.len != -1  判斷讀取的有效個數是否爲-1
*
*/
while((len = fr.read(chs))!= -1){
System.out.println(new String(chs,0,len));
}
fr.close();
}
}

在這裏何時用到字符流呢,通常狀況下可以使用系統記事本打開並閱讀裏面的內容的,咱們採用字符流,

相關文章
相關標籤/搜索