JDK源码详解之BufferedReader类

JDK源码详解之 BufferedReader

1. BufferedReader 是什么?

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.
缓冲区大小可能被指定,否则使用默认缓冲大小。对于大多数要求来说,默认大小已经足够了。

In general, each read request made of a Reader causes a corresponding read request to be made of the underlying character or byte stream. It is therefore advisable to wrap a BufferedReader around any Reader whose read() operations may be costly, such as FileReaders and InputStreamReaders.
通常来说,每个由 Reader 发出的读请求会造成一个相应的读请求到底层字节或者字符流。因此,可取的操作是包装一个 BufferedReaders 在任何的Reader上,这个Reader的read()操作代价很大,诸如FileReaders 和 InputStreamReaders

2.为什么需要BufferedReader

为了提高字符读取的效率。

3. 类详解
3.1 类源码
 @see FileReader
 @see InputStreamReader
 @see java.nio.file.Files#newBufferedReader
 
 @author      Mark Reinhold
 @since       JDK1.1
 */

public class BufferedReader extends Reader {...}
3.2 简单示例
 BufferedReader in   = new BufferedReader(new FileReader("foo.in"));

will buffer the input from the specified file. Without buffering, each invocation of read() or readLine() could cause bytes to be read from the file, converted into characters, and then returned, which can be very inefficient.
上面这个代码将会缓冲来自指定文件的输入。 如果没有缓冲,每次调用 read() 或者 readLine()方法都可能导致从文件读取字节,将字节转换成字符,并且返回,这个过程是非常低效的。

Programs that use DataInputStreams for textual input can be localized by replacing each DataInputStream with an appropriate BufferedReader.
使用DataInputStream进行文本输入能够本地化,通过使用BufferedReader取代每个DataInputStream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值