12.3.1 字符输入流Reader类

12.3.1 字符输入流Reader类

Reader类称为字符输入流类,为通用的输入字符流提供了一些基本方法和标准接口,是所有面向字符的输入流的超类,声明为抽象类。

img508

1.Reader类的常用方法

Reader类有两个抽象方法如表12-3所示:

表12-3 Reader类的常用方法

img509

Reader类的子类重写了不同功能的这两个抽象方法。由于Reader类是一个抽象类,所以它本身不能直接用来创建对象。

Reader类和OutputStream类的诸多方法很相似,主要区别是:OutputStream类操作的是字节,Reader类操作的是字符。

2.Reader类的常用子类

BufferedReader类和InputStreamReader类是Reader类子类中常用的两个子类。

(1)BufferedReader类

BufferedReader类称为缓冲字符输入流,它在字符输入流的基础上,增加了字符缓冲的功能。当一个BufferedReader类对象创建时,就产生了一个内部缓冲数组,这样就可以根据需要从连接的输入字符流中一次性读多个字符。因此,BufferedReader类可以提高字符流的效率。BufferedReader继承自Reader,其常用的方法如表12-4所示:

表12-4 BufferedReader类常用方法

img510

(2)InputStreamReader类

InputStreamReader是字节数据流与字符数据流之间的一座桥梁,它读入字节数据流,然后根据字符编码规则将它们转换成字符。

img511

字符编码规则可明确指定或使用该平台预设的字符编码规则。每一次使用InputStreamReader对象的read()方法,可从输入流读入一个或多个字节,为了提高效率,可配合

img512

img513

可使用BufferedReader类的对象br的readLine()方法输入一行字符串。

img514

(3)FileReader类

FileReader类称为字符文件输入流类,它是Reader类的子类的子类。FileReader类常用的构造方法是:

• FileReader(String fileName)

构造字符文件输入类对象。其中,参数FileName是需要读的文件名。