12.3.1 字符输入流Reader类
Reader类称为字符输入流类,为通用的输入字符流提供了一些基本方法和标准接口,是所有面向字符的输入流的超类,声明为抽象类。
1.Reader类的常用方法
Reader类有两个抽象方法如表12-3所示:
表12-3 Reader类的常用方法
Reader类的子类重写了不同功能的这两个抽象方法。由于Reader类是一个抽象类,所以它本身不能直接用来创建对象。
Reader类和OutputStream类的诸多方法很相似,主要区别是:OutputStream类操作的是字节,Reader类操作的是字符。
2.Reader类的常用子类
BufferedReader类和InputStreamReader类是Reader类子类中常用的两个子类。
(1)BufferedReader类
BufferedReader类称为缓冲字符输入流,它在字符输入流的基础上,增加了字符缓冲的功能。当一个BufferedReader类对象创建时,就产生了一个内部缓冲数组,这样就可以根据需要从连接的输入字符流中一次性读多个字符。因此,BufferedReader类可以提高字符流的效率。BufferedReader继承自Reader,其常用的方法如表12-4所示:
表12-4 BufferedReader类常用方法
(2)InputStreamReader类
InputStreamReader是字节数据流与字符数据流之间的一座桥梁,它读入字节数据流,然后根据字符编码规则将它们转换成字符。
字符编码规则可明确指定或使用该平台预设的字符编码规则。每一次使用InputStreamReader对象的read()方法,可从输入流读入一个或多个字节,为了提高效率,可配合
或
可使用BufferedReader类的对象br的readLine()方法输入一行字符串。
(3)FileReader类
FileReader类称为字符文件输入流类,它是Reader类的子类的子类。FileReader类常用的构造方法是:
• FileReader(String fileName)
构造字符文件输入类对象。其中,参数FileName是需要读的文件名。