IO-字符流-FileReader
阿新 • • 發佈:2017-06-24
字符流 io 讀取數據
FileReader 讀數據
構造方法:
FileReader(String fileName) 傳遞要讀取的文件名稱
成員方法:
int read() 讀取單個字符並返回
int read(char[] cbuf) 一次讀取一個字符數組的數據,返回的是實際讀取字符的個數.
輸入流讀文件的一般步驟:
1.創建輸入流對象
2.調用輸入流對象的對數據方法
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(); } }
在這裏什麽時候用到字符流呢,一般情況下能夠使用系統記事本打開並閱讀裏面的內容的,我們采用字符流,
本文出自 “xinsz08の平行時空” 博客,請務必保留此出處http://xinsz08.blog.51cto.com/10565212/1941490
IO-字符流-FileReader