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 包中的字符输出流,它们的主要区别如下:
-
BufferedWriter 内部封装了一个字符缓冲区,提高字符输出效率,而 FileWriter 没有缓冲区,每次输出都需要直接写入磁盘,效率较低。
-
在写入文件时,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() 方法,可以立即将缓冲区的字符输出到文件中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 中的 BufferedWriter 介绍_动力节点Java学院整理 - Python技术站