模块  java.base
软件包  java.io

Class BufferedWriter

  • 实现的所有接口
    CloseableFlushableAppendableAutoCloseable

    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()方法都会导致字符转换为字节,然后立即写入文件,这可能效率很低。
    从以下版本开始:
    1.1
    另请参见:
    PrintWriterFileWriterOutputStreamWriterFiles.newBufferedWriter(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption...)
    • 构造方法详细信息

      • 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
        写一个字符。
        重写:
        writeWriter
        参数
        c - 指定要写入的字符的int
        异常
        IOException - 如果发生I / O错误
      • write

        public void write​(char[] cbuf,                  int off,                  int len)           throws IOException
        写一个字符数组的一部分。

        通常,此方法将给定数组中的字符存储到此流的缓冲区中,根据需要将缓冲区刷新到基础流。 但是,如果请求的长度至少与缓冲区一样大,则此方法将刷新缓冲区并将字符直接写入基础流。 因此冗余BufferedWriter不会不必要地复制数据。

        Specified by:
        writeWriter
        参数
        cbuf - 字符数组
        off - 开始读取字符的偏移量
        len - 要写入的字符数
        异常
        IndexOutOfBoundsException - 如果 off为负数,或者 len为负数,或者 off + len为负数或大于给定数组的长度
        IOException - 如果发生I / O错误
      • write

        public void write​(String s,                  int off,                  int len)           throws IOException
        写一个字符串的一部分。
        重写:
        writeWriter
        实现要求:
        而在此方法的规范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错误