Java BufferedWriter

时间:2020-02-23 14:36:23  来源:igfitidea点击:

Java BufferedWriter类是java.io包的一部分。

Java BufferedWriter

  • BufferedWriter是java.io.Writer类的子类。

  • BufferedWriter将文本写入字符输出流,缓冲字符,以便有效地写入单个字符,数组和字符串。

  • 可以指定缓冲区大小,也可以使用默认大小。
    对于大多数用途,默认值足够大。

  • BufferedWriter用于使诸如FileWriter之类的低级类更高效且更易于使用。
    与FileWriters相比,BufferedWriters一次将相对较大的数据块写入文件,从而最大程度地减少了执行缓慢的文件写入操作的次数。

  • BufferedWriter类还提供了一个newLine()方法来自动创建特定于平台的行分隔符。

  • 通常,Writer立即将其输出发送到基础字符或者字节流。
    除非需要即时输出,否则建议将BufferedWriter包装在其write()操作可能会很昂贵的所有Writer周围,例如FileWriters和OutputStreamWriters。

Java BufferedWriter使用流程

Java BufferedWriter构造函数

  • BufferedWriter(Writer out):创建一个缓冲的字符输出流,该流使用默认大小的输出缓冲区和指定的Writer对象。

  • BufferedWriter(Writer out,int sz):创建一个缓冲的字符输出流,该流使用具有指定Writer对象的指定大小的输出缓冲区。

BufferedWriter方法和示例

让我们看一下下面的BufferedWriter类方法的示例。

  • write(int c):此方法写入由int c指定的单个字符。

上面程序的输出如下:
如果您注意到程序和输出文件的图像,则可能会看到writer.write(50);在文件中输出为" 2",这是因为整数参数被转换为char然后写入了文件。
下面的代码片段输出将清除您的困惑。

BufferedWriter实现了AutoCloseable接口,因此我们在使用BufferedWriter类时可以尝试使用资源。
让我们看下面的示例程序。

  • write(String s,int off,int len):此方法将String s的一部分从int off写入int len.s:要写入的字符串off:开始读取字符的偏移量len:要写入的字符数len参数的值为负,则不写入任何字符。

  • write(char [] cbuf,int off,int len):该方法将char [] cbuf指定的字符数组的一部分从int off写入int len.cbuf:一个字符arrayoff:从其开始的偏移量读取characterlen:要写入的字符数此方法将给定数组中的字符存储到此流的缓冲区中,并根据需要将缓冲区刷新到基础流。
    但是,如果请求的长度至少等于缓冲区的长度,则此方法将刷新缓冲区并将字符直接写入基础流。
    因此,冗余的BufferedWriters不会不必要地复制数据。

  • newLine():此方法编写一个行分隔符。
    行分隔符字符串是由系统属性" line.separator"定义的,不一定是单个换行符(\ n)。

  • flush():此方法刷新流并将缓冲区写入输出文件。

  • close():此方法在关闭流之前先冲洗流。
    一旦关闭流,调用write()或者flush()方法将导致引发IOException。
    关闭先前关闭的流无效。