java IO流 之 字符流

字符流 :读的也是二进制文件,他会帮我们解码成我们看的懂的字符。
字符流 = 字节流  + 解码

(一)字符输入流:Reader : 它是字符输入流的根类 ,是抽象类

  FileReader :文件字符输入流 ,读取字符串。
     用法:
        1.找到目标文件
        2.建立数据的通道
        3.建立一个缓冲区
        4.读取数据
        5.关闭资源。

(二)字符流输出流: Writer : 字符输出流的根类 ,抽象的类
          FileWiter :文件数据的输出字符流
          使用注意点:
         1.FileReader内部维护了一个1024个字符的数组,所以在写入数据的时候,它是现将数据写入到内部的字符数组中。

      如果需要将数据写入到硬盘中,需要用到flush()或者关闭或者字符数组数据存满了。
         2.如果我需要向文件中追加数据,需要使用new FileWriter(File , boolean)构造方法 ,第二参数true
         3.如果指定的文件不存在,也会自己创建一个。

字符输出流简单案例

 1 import java.io.File;
 2 import java.io.FileWriter;
 3 import java.io.IOException;
 4 
 5 public class fileWriter {
 6 
 7     /**
 8      * @param args
 9      * @throws IOException 
10      */
11     public static void main(String[] args) throws IOException {
12         // TODO Auto-generated method stub
13         testFileWriter();
14 
15     }
16     
17     public static void testFileWriter() throws IOException{
18         
19         //1.找目标文件
20         File file = new File("D:\a.txt");
21         //2.建立通道
22         FileWriter fwt = new FileWriter(file,true); //在文件后面继续追加数据
23         //3.写入数据(直接写入字符)
24         fwt.write("继续讲课");
25         //4.关闭数据
26         fwt.close();
27     }
28 }

字符输入流简单案例

 1 import java.io.File;
 2 import java.io.FileReader;
 3 import java.io.IOException;
 4 
 5 public class fileReader {
 6 
 7     public static void main(String[] args) throws IOException {
 8 
 9         //testFileReader();
10         testFileReader2();
11     }
12     //(1)输入字符流的使用  这种方式效率太低。
13     public static void testFileReader() throws IOException{
14         
15         //1.找目标文件
16         File file = new File("D:\a.txt");
17 
18         //2.建立通道
19         FileReader frd = new FileReader(file);
20 
21         //3.读取数据
22         int content = 0; //读取单个字符。效率低
23         while ((content = frd.read()) != -1) {
24             System.out.print((char)content);    
25         }
26         
27         //4.关闭流
28         frd.close();
29     }
30     
31     //(2)
32     public static void testFileReader2() throws IOException{
33         
34         //1.找目标文件
35         File file = new File("D:\a.txt");
36 
37         //2.建立通道
38         FileReader frd = new FileReader(file);
39 
40         //3.建立一个缓冲区 ,字符数组
41         char[] c = new char[1024];
42         int length = 0;
43 
44         //4.读取数据
45         while ((length = frd.read(c))!= -1) {
46             //字符串输出
47             System.out.println(new String(c,0,length));
48         }
49         //5.关闭资源
50         frd.close();
51     }
52 }
原文地址:https://www.cnblogs.com/bigerf/p/6144384.html