字符缓冲流BufferedReader和BufferedWriter使用

如何使用字符缓冲流,对键盘输入的每一行数据写入到一个新文件中

缓冲流有哪些

1.字节缓冲流
我们知道,字节缓冲流BufferedInputStream和BufferedOutputStream他们在逐个字节读取的时候效率远高于使用字节流InputStream和OutputStream,我们可以测试如下:

一般字节流读取mp3文件:
字符缓冲流BufferedReader和BufferedWriter使用

我们大概计时了一下,大概需要20秒左右才能复制玩一个8Mb音乐文件,一般字节流通过一个一个字节读取并打印到新文件,这样效率贼低。

下面是使用字符流读取mp3文件:
字符缓冲流BufferedReader和BufferedWriter使用
我计时大概不到两秒钟就复制完写入新文件了,速度比一般字节流起码快10倍以上,效率特别高。
缓冲流默认的缓冲区大小为8kb,当缓冲区大小没被读写的数据填满时,不会主动 将数据写到目标文件中,我们可以通过调用其flush()或close()方法来强制将缓冲区内容写到文件中。
实际上,close()方法中调用的就是flush()方法,缓冲流其实还是将数据写到字节数组中。

2.字符缓冲流

字符缓冲流有BufferedReader和BufferedWriter,他们是以行为单位读取和输出的,效率也比普通字符流高。

字符缓冲流BufferedReader使用:
字符缓冲流BufferedReader和BufferedWriter使用

字符缓冲流进阶使用:

如何将键盘输入的数据输出到文件中:
该目标实现过程中如何将键盘输入的数据转换为字符缓冲流是一个难点,首先需要定义缓冲流输入对象,该对象需定义为字节输入流类型的;
然后将字节流转为字符流对象,再把字符流转为字符缓冲流,这样就可以通过BufferedReader中的readLine()方法将数据读入字符串里。
最后就通过定义字符缓冲输出流,然后写入已获得的字符串数据即可。
字符缓冲流BufferedReader和BufferedWriter使用

总结

缓冲流的效率比一般字节流和字符流速度快多了,我们在项目中可以多使用缓冲流来提高读写数据的效率。

希望大家觉得有用的点亮我的小星星,感谢大伙儿!!!给您笔芯。。