public class BufferedWriterextends
Writer
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); 将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
字段摘要
从类 java.io.Writer 继承的字段
构造方法摘要
方法摘要
void
void
void
void
写入字符数组的某一部分。
void
写入单个字符。
void
String s, int off, int len)
写入字符串的某一部分。
构造方法详细信息
BufferedWriter
public BufferedWriter(Writer out)
创建一个使用默认大小输出缓冲区的缓冲字符输出流。
参数:
out - 一个 Writer
BufferedWriter
public BufferedWriter(Writer out,
int sz)
创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
参数:
out - 一个 Writer
sz - 输出缓冲区的大小,是一个正整数
抛出:
方法详细信息
write
public void write(int c)
throws IOException
写入单个字符。
参数:
c - 指定要写入字符的 int。
抛出:
write
public void write(char[] cbuf,
int off,
int len)
throws IOException
写入字符数组的某一部分。
一般来说,此方法将给定数组的字符存入此流的缓冲区中,根据需要刷新该缓冲区,并转到底层流。但是,如果请求的长度至少与此缓冲区大小相同,则此方法将刷新该缓冲区并将各个字符直接写入底层流。因此多余的 BufferedWriter 将不必复制数据。
参数:
cbuf - 字符数组
off - 开始读取字符处的偏移量
len - 要写入的字符数
抛出:
write
public void write(String s,
int off,
int len)
throws IOException
写入字符串的某一部分。
如果 len 参数的值为负数,则不写入任何字符。这与超类中此方法的规范正好相反,它要求抛出 IndexOutOfBoundsException。
参数:
s - 要写入的字符串
off - 开始读取字符处的偏移量
len - 要写入的字符数
抛出:
newLine
public void newLine()
throws IOException
写入一个行分隔符。行分隔符字符串由系统属性
line.separator 定义,并且不一定是单个新行 ('\n') 符。
抛出:
flush
public void flush()
throws IOException
刷新该流的缓冲。
抛出:
close
public void close()
throws IOException
从类
关闭此流,但要先刷新它。在关闭该流之后,再调用 write() 或 flush() 将导致抛出 IOException。关闭以前关闭的流无效。
抛出: