Java Io流
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 }


浙公网安备 33010602011771号