BufferedReader是缓存流的一个类。
缓存流是计算机领域中输入输出流的一种常见形式。包括BufferedInputStream/ BufferedOutputStream 类和BufferedReader/ BufferedWriter类。
BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。缓存流是过滤流,在创建具体流时需要给出一个InputStream / OutputStream 类型的流座位前端流,并可以指明缓冲区的大小。
扩展资料:
输入输出原理:
BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并放满缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。
如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
BufferedReader字符流以字符为单位传输数据的流,输入流程序可以从中读取数据的流。
参考资料来源:百度百科-缓存流
参考资料来源:百度百科-java.io
调用br.readLine() 的时候就已经把行都出来了,你需要把读出来的数据暂存以便后继的判断和处理使用。如果像你下边的那份代码那样,你判断玩了非空了,但你的while代码块中怎么使用读出来的数据?再次调用br.readLine() 是不行的,因为读的是下一行的数据了。所以需要把代码写成上面的那种形式。
br.readLine() 调用一次就读一行,在没有读取到最后一行的情况下,第n次调用是读取的第n行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)