- java.lang.Object
-
- java.io.Writer
-
- java.io.BufferedWriter
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,Appendable
,AutoCloseable
public class BufferedWriter extends Writer
将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。
提供了一个newLine()方法,它使用平台自己的系统属性
line.separator
定义的行分隔符概念。 并非所有平台都使用换行符('\ n')来终止行。 因此,调用此方法来终止每个输出行,因此优选直接写入换行符。一般来说,Writer将其输出立即发送到底层字符或字节流。 除非需要提示输出,否则建议将BufferedWriter包装在其write()操作可能很昂贵的Writer上,例如FileWriters和OutputStreamWriters。 例如,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
将缓冲PrintWriter的输出到文件。 没有缓冲,每次调用print()方法都会使字符转换为字节,然后立即写入文件,这可能非常低效。
-
-
构造方法摘要
构造方法 Constructor 描述 BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。BufferedWriter(Writer out, int sz)
创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
close()
关闭流,先刷新。void
flush()
刷新流。void
newLine()
写一行行分隔符。void
write(char[] cbuf, int off, int len)
写入字符数组的一部分。void
write(int c)
写一个字符void
write(String s, int off, int len)
写一个字符串的一部分。
-
-
-
构造方法详细信息
-
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中此方法的规范建议如果
len
为负数或off + len
为负值,则抛出一个IndexOutOfBoundsException
,在此类中的实现不会在这些情况下抛出这样的异常,而只是不写入任何字符。 - 参数
-
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错误
-
close
public void close() throws IOException
描述从类别复制Writer
关闭流,先刷新。 一旦流已关闭,进一步的write()或flush()调用将导致抛出IOException。 关闭以前关闭的流无效。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- Specified by:
-
close
在Writer
- 异常
-
IOException
- If an I/O error occurs
-
-