12.3.2 字符输出流Writer类

12.3.2 字符输出流Writer类

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

public abstract class Writer extends Object

1.Writer类的常用方法

Writer类中的方法除与OutputStream类中相似方法外,还有:

img515

2.Writer类的常用子类

(1)OutputStreamWriter类

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

img516

字符编码规则可明确指定或使用该平台预设的字符编码规则。每一次使用OutputStreamWriter对象的write()方法,可输出一个或多个字符,为了提高效率,可配合BufferedWriter。例如:

img517

将文本写到字符输出数据流,使用缓冲区对于单一字符、字符串或数组均可以提高效率。缓冲区的大小可事先指定,也可使用预设值,大部分的作业使用预设值就可以了。每一个文本行结束时,最好使用newLine()方法输出一个新行符号,一般为‘\n’,但非一成不变的,使用newLine()写系统所规定的新行符号,比直接写出‘\n’要有弹性。

一般而言,Writer将输出直接写到字符或字节数据流,建议配合使用FileWriter对象或OutputStreamWriter对象。例如:

img518

输出数据流入缓冲区,又流入test.txt文件。

或使用如下的句法:

img519

输出数据流入缓冲区,又流到System.out标准系统输出装置。

若不使用缓冲区,则每一次使用print()方法写出时都会将字符数据转成字节,然后立即输出到test.txt文件,这样的动作非常没有效率。

(2)BufferedWriter类

BufferedWriter类继承自Writer类,其常用的方法如表12-5所指示:

表12-5 BufferedWriter类的常用方法

img520

(3)屏幕字符输出流PrintWriter类

屏幕字符输出流PrintWriter类主要用来把字符输出流当作屏幕输出。

• 常用的构造方法有:

PrintWriter(OutputStream out)

用OutputStream对象out构造。

PrintWriter(OutputStream out,boolean autoFlush)

用OutputStream对象out构造,autoFlush为true表示自动清空输入字符流。

• 常用的方法有:

void print(String s)

打印字符串s。

void println(String s)

打印字符串s,并换行。

void print(Object obj)

打印对象obj。

void println(Object obj)

打印对象obj,并换行。

另外,PrintWriter类还提供了打印系统定义的所有基本数据类型(如int,float等)的print()方法和println()方法,这里不再一一列出。

(4)字符文件输出流FileWriter类

FileWriter类称为字符文件输出流类,它是Writer类的子类的子类。FileWriter类的常用构造方法是:

• FileWriter(String filename)

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