javaIO--字符流
阿新 • • 發佈:2017-08-15
子類 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 = newTextFile("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--字符流