javaIO--字符流

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 }

 

posted @ 2017-08-15 19:41  K_artorias  阅读(295)  评论(0编辑  收藏  举报