缓冲流字符流
PrintWriter:具有自动行刷新的缓冲字符流
构造方法:
PrintWriter(File file):以文件实例创建对象
PrintWriter(String fileName):以文件名创建实例
PrintWriter(OutputStream out):以一个输出流实例创建对象
PrintWriter(OutputStream out,boolean autoFlush ):以一个被装饰的输出流实例创建具有自动行刷行的对象实例,当autoFlush为true时,创建的实例具有自动行刷新功能
PrintWriter(Writer writer):以一个被装饰的字符输出流创建对象
PrintWriter(Writer writer,boolean autoFlush):以一个被装饰的字符输出流创建具有自动行刷新的实例,当autoFlush为true时,创建的实例具有自动航刷新功能
常用的方法有:
void print(int i):向输出流写出一个int类型的数据
void print(long l):向输出流写出一个long类型的数据
...
void print(UTF utf):向输出流写出一个字符编码的数据
void println(int i):向输出流写出一个int类型的数据和换行符
void println(long l):向输出流写出一个long类型的数据和换行符
...
void println(UTF utf):向输出流写出一个字符编码类型的数据和换行符
创建具有自动行刷新的缓冲字符输出流对象后,每当我们使用println()写出字符串后,都会自动调用flush(),但是,增加写出次数就降低了写出的效率。
PrintWriter和PrintStream的比较:
(1)PrintWriter和PrintStream的用法基本相同。
(2)两者的每一个print()方法都有一个与之相对应的println()方法
(3)两者的所有print()和println()都不会抛出IOExcption异常
(4)两者都可以通过checkError()来判断写出数据是否成功,若返回true则表示遇到了错误
(5)printWriter和BufferWriter都有缓冲区,但BufferWriter只有缓冲区满时才写出,而PrintWriter可以让客户来决定缓冲区的行为。PrintStream和BufferOutputStream也都带有缓冲区,BufferOutputStream也只有缓冲区装满时才写出数据。
(6)PrintWriter可以使用Writer类修饰的字符编码,而PrintStream只能使用本地平台的字符编码
BufferedReader:缓冲字符输入流,可以以行为单位读取字符串
构造方法:
BufferReader(Reader reader):以被装饰的字符输入流对象创建一个缓冲字节输入流对象
BufferReader(Reader reader,int sz):以被装饰的字符输入流对象创建一个具有sz个字符长度的缓冲区的缓冲字节输入流对象
常用方法:
String readLine():一次读取一行字符串,该方法会判断读取到换行符为止,并将之前读到的一行字符返回。若该方法返回的字符串为空,则说明没有数据可读了。