1. 程式人生 > >javaIO--字符流

javaIO--字符流

子類 exc input txt string ati lin exceptio ext

java提供字符流對自否劉式文件進行數據讀寫操作。字符輸入流類是Reader及其子類,輸出流是Writer及其子類。

另外,上一篇javaIO寫的是字節流,字節流方式也可以對以字符為基本類型的流式文件讀寫。

1 采用文件字節流,將字節緩沖區數組中的字節轉換成字符

2 采用數據字節流,readChar()方法讀取一個字符,writerChar(int c)方法寫入一個字符,writerChars(String s)方法寫入一個字符串。

ps:DataInputStream類中的讀取一行字符串的readLine()方法已過時,被BufferReader類中的readLine()取代。

Reader類的子類:InputStreamReader(字節輸入流轉換成字符輸入流 <--Filereader(文件字符輸入流))、FilerReader(過濾器字符輸入流)、PipedReader(管道字符輸入流)、BufferReader(緩沖字符輸入流)。

Writer類的子類:OutputStreamReader(字節輸入流轉換成字符輸入流 <--FileWriter(文件字符輸入流))、FilerWriter(過濾器字符輸入流)、PipedWriter(管道字符輸入流)、BufferWriter(緩沖字符輸入流)、PrintWriter(格式化字符輸出流)。

下面是一個對文件進行字符型IO的實例,將Fibonacci序列值寫入文本

 1 public class IOtestChar {
 2     public static void main(String[] args) throws IOException {
 3         TextFile afile = new
TextFile("fibText.txt"); 4 afile.writeToText(); 5 afile.readFromText(); 6 } 7 8 //文本文件的讀寫操作,以字符串為單位:將fibonacci序列值寫入文本文件 9 static class TextFile{ 10 private String filename; 11 public TextFile(String filename){ 12 this.filename = filename;
13 } 14 15 public void writeToText() throws IOException{ 16 FileWriter fout = new FileWriter(this.filename); 17 short i = 0, j = 1; 18 do{ 19 fout.write(i + " " + j + " "); 20 i = (short)(i+j); 21 j = (short)(i+j); 22 }while(i > 0); 23 fout.close(); 24 } 25 26 public void readFromText() throws IOException{ 27 FileReader fin = new FileReader(this.filename); 28 BufferedReader bin = new BufferedReader(fin); 29 System.out.println(this.filename + ": "); 30 String aline = ""; 31 while((aline = bin.readLine()) != null){ 32 System.out.println(aline); 33 } 34 bin.close(); 35 fin.close(); 36 } 37 } 38 }

javaIO--字符流