12.3.2 字符输出流Writer类
Writer类称为字符输出流类,为通用的输出字符流提供了一些基本方法和标准接口,是所有面向字符的输出流的超类,声明为抽象类。
public abstract class Writer extends Object
1.Writer类的常用方法
Writer类中的方法除与OutputStream类中相似方法外,还有:
2.Writer类的常用子类
(1)OutputStreamWriter类
输出字符数据流OutputStreamWriter是字符与字节数据流之间的一座桥梁,它读入字符数据流,然后根据字符编码规则将它们转换成字节。
字符编码规则可明确指定或使用该平台预设的字符编码规则。每一次使用OutputStreamWriter对象的write()方法,可输出一个或多个字符,为了提高效率,可配合BufferedWriter。例如:
将文本写到字符输出数据流,使用缓冲区对于单一字符、字符串或数组均可以提高效率。缓冲区的大小可事先指定,也可使用预设值,大部分的作业使用预设值就可以了。每一个文本行结束时,最好使用newLine()方法输出一个新行符号,一般为‘\n’,但非一成不变的,使用newLine()写系统所规定的新行符号,比直接写出‘\n’要有弹性。
一般而言,Writer将输出直接写到字符或字节数据流,建议配合使用FileWriter对象或OutputStreamWriter对象。例如:
输出数据流入缓冲区,又流入test.txt文件。
或使用如下的句法:
输出数据流入缓冲区,又流到System.out标准系统输出装置。
若不使用缓冲区,则每一次使用print()方法写出时都会将字符数据转成字节,然后立即输出到test.txt文件,这样的动作非常没有效率。
(2)BufferedWriter类
BufferedWriter类继承自Writer类,其常用的方法如表12-5所指示:
表12-5 BufferedWriter类的常用方法
(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是需要写的文件名。