- java.lang.Object
-
- java.io.Writer
-
- java.io.BufferedWriter
-
- 实现的所有接口
-
Closeable
,Flushable
,Appendable
,AutoCloseable
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()方法都会导致字符转换为字节,然后立即写入文件,这可能效率很低。
-
-
构造方法摘要
构造方法 构造器 描述 BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。BufferedWriter(Writer out, int sz)
创建一个使用给定大小的输出缓冲区的新缓冲字符输出流。
-
-
-
构造方法详细信息
-
BufferedWriter
public BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。- 参数
-
out
- 作家
-
BufferedWriter
public BufferedWriter(Writer out, int sz)
创建一个使用给定大小的输出缓冲区的新缓冲字符输出流。- 参数
-
out
- 作家 -
sz
- 输出缓冲区大小,正整数 - 异常
-
IllegalArgumentException
- 如果是sz <= 0
-
-
方法详细信息
-
write
public void write(int c) throws IOException
写一个字符。- 重写:
-
write
类Writer
- 参数
-
c
- 指定要写入的字符的int - 异常
-
IOException
- 如果发生I / O错误
-
write
public void write(char[] cbuf, int off, int len) throws IOException
写一个字符数组的一部分。通常,此方法将给定数组中的字符存储到此流的缓冲区中,根据需要将缓冲区刷新到基础流。 但是,如果请求的长度至少与缓冲区一样大,则此方法将刷新缓冲区并将字符直接写入基础流。 因此冗余
BufferedWriter
不会不必要地复制数据。- Specified by:
-
write
类Writer
- 参数
-
cbuf
- 字符数组 -
off
- 开始读取字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
为负数,或者len
为负数,或者off + len
为负数或大于给定数组的长度 -
IOException
- 如果发生I / O错误
-
write
public void write(String s, int off, int len) throws IOException
写一个字符串的一部分。- 重写:
-
write
类Writer
- 实现要求:
- 而在此方法的规范superclass建议的
IndexOutOfBoundsException
如果被抛出len
为负或off + len
为负,在这个类实现不扔在这些情况下,这样的异常,但不是简单地写任何字符。 - 参数
-
s
- 要写入的字符串 -
off
- 开始读取字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
为负数,或者off + len
大于给定字符串的长度 -
IOException
- 如果发生I / O错误
-
newLine
public void newLine() throws IOException
写一个行分隔符。 行分隔符字符串由系统属性line.separator
定义,不一定是单个换行符('\ n')。- 异常
-
IOException
- 如果发生I / O错误
-
flush
public void flush() throws IOException
刷新流。- Specified by:
-
flush
,界面Flushable
- Specified by:
-
flush
类Writer
- 异常
-
IOException
- 如果发生I / O错误
-
-