1. java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
这么说吧,这个类就是一个包装类,它可以包装字符流,将字符流放入缓存里,先把字符读到缓存里,到缓存满了或者你flush的时候,再读入内存,就是为了提供读的效率而设计的。
java.io
Class BufferedReader
public class BufferedReader
extends Reader
Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.
The buffer size may be specified, or the default size may be used. The default is large enough for most purposes.
Enhon1992 发表于 2015-6-5 20:24
BufferedReader 是字符输入流缓冲区,这个类是采用装饰设计模式来设计的,在创建这个类的对象的时候,需要 ...
xtf 发表于 2015-6-7 11:32
认真学习下!
xtf 发表于 2015-6-7 11:32
认真学习下!
Enhon1992 发表于 2015-6-5 20:24
BufferedReader 是字符输入流缓冲区,这个类是采用装饰设计模式来设计的,在创建这个类的对象的时候,需要 ...
然后用read从源中读取数据 存放到这个类封装的字节数组,没有直接从源中读取数据 而是从内存中读取数据 所以效率很高;
as604049322 发表于 2015-6-7 16:28
我的回答是:当BufferedReader在读取文本文件时,会先从文件中读入数据,并置入其所提供的缓冲区,
然后后 ...
L`29MLFMSMKSQS}JH$1F4BE.png (12.75 KB, 下载次数: 178)
这个是BbufferedReader的源码的一部分
as604049322 发表于 2015-6-7 16:28
我的回答是:当BufferedReader在读取文本文件时,会先从文件中读入数据,并置入其所提供的缓冲区,
然后后 ...
君子无醉 发表于 2015-6-8 01:01
我觉得 老师让你再想想的原因,可能是你把char[]数组说成了byte[]数组。因为包装的是字符流。。 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |