2.字符流

2.字符流

Reader、Writer及其子类是“字符流”,以字符为处理单位。

抽象类Reader的主要方法如表2.10.4所示。

表2.10.4 Reader的主要方法

抽象类Writer的主要方法如表2.10.5所示。

表2.10.5 Writer的主要方法

主要的字符流有如下几种。

(1)FileReader/FileWriter

字符流中的FileReader/FileWriter是直接和文件相联的节点流。

【代码10.5】通过FileReader/FileWriter把c:\test\a.txt拷贝为c:\test\b.txt

(2)BufferedReader/Buffered Writer

Buffered Reader/Buffered Writer是缓存流,需要用节点流作为参数的处理流,不能直接和文件相联。缓存流提供数据缓存处理,这样可以减少IO次数,使得读写操作更加高效。Buffered Reader提供了read Line()方法,可以一次读入一行。写出时,数据有可能写入缓冲区,没有即刻写出到外设,可以用flush()将缓冲区中的数据压入外设文件。流对象关闭时,会将缓冲区内容写入外设。

【代码10.6】用Buffered Reader/Buffered Writer把e:\test\a.txt拷贝为e:\test\b.txt

缓存输出字符流(很多时候会用Print Writer类)提供了println()方法,用于一次输出一行字符串,并在构造方法里提供了参数,用来设定自动刷新,这样写入缓存流的数据会自动写出外设文件,不需要调用flush()。

【代码10.7】用PrintWriter类替换Buffered Writer类,实现代码10.6