Java 中的 BufferedWriter 介绍_动力节点Java学院整理

  

Java 中的 BufferedWriter 介绍

什么是 BufferedWriter

BufferedWriter 是 Java.io 包中提供的一个字符缓冲输出流,它内部封装了一个字符缓冲区(Buffer),可以提高字符输出效率。

BufferedWriter 的构造方法

BufferedWriter 提供了两个构造方法:

public BufferedWriter(Writer out)
public BufferedWriter(Writer out, int sz)

其中,参数 out 是一个 Writer 对象,表示输出流的原始对象,参数 sz 则是指定字符缓冲区大小的整数。如果未指定字符缓冲区大小,则默认是 8192 字节(8KB)。

BufferedWriter 与 FileWriter 的区别

BufferedWriter 和 FileWriter 都是 Java.io 包中的字符输出流,它们的主要区别如下:

  1. BufferedWriter 内部封装了一个字符缓冲区,提高字符输出效率,而 FileWriter 没有缓冲区,每次输出都需要直接写入磁盘,效率较低。

  2. 在写入文件时,BufferedWriter 应该始终与 FileWriter 一起使用,即先使用 FileWriter 将输出流打开,然后将其传递给 BufferedWriter 。

BufferedWriter 的常用方法

BufferedWriter 中常用的方法有如下几个:

write() 方法

BufferedWriter 的 write() 方法可以直接输出一个字符或一个字符数组,它的方法签名如下:

public void write(char cbuf[], int off, int len) throws IOException

参数 cbuf 为要写入的字符数组,参数 off 为要写入的字符数组的其实位置,参数 len 为要写入的字符数组的长度。

下面是一个示例,演示如何使用 BufferedWriter 写入字符数组:

BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
char[] chars = {'h', 'e', 'l', 'l', 'o'};
bw.write(chars, 0, chars.length);
bw.flush(); // 立即刷新缓冲区,将字符输出到文件
bw.close(); // 关闭输出流

newLine() 方法

newLine() 方法用于输出一个行分隔符,不需要指定操作系统的分隔符类型,它的方法签名如下:

public void newLine() throws IOException

下面是一个示例,演示如何使用 BufferedWriter 写入多行文本:

BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
bw.write("Hello");
bw.newLine();
bw.write("World");
bw.newLine();
bw.flush(); // 立即刷新缓冲区,将字符输出到文件
bw.close(); // 关闭输出流

总结

BufferedWriter 是 Java.io 包中提供的一个字符缓冲输出流,它提供了一个内部缓冲区,可以提高字符输出效率。BufferedWriter 和 FileWriter 的主要区别在于是否有缓冲区,以及使用时的操作流程不同。在使用 BufferedWriter 的过程中,我们可使用 write() 和 newLine() 方法来完成字符的输出,通过调用 flush() 方法,可以立即将缓冲区的字符输出到文件中。

相关文章