缓冲:缓和冲击,内存中预留了一部分空间,这些空间用来缓冲输入或输出的数据,叫做缓冲区。
使用缓冲区可以提高程序读写效率,因为数据读写速度和处理速度不平衡,读写速度很慢,如果太多次读写数据,会浪费大量的时间。
BufferedInputStream会预先读取一段原始数据放入缓冲区中,使用read方法时读取的是缓冲区中的数据,如果读取的数据超过了缓冲区的数据范围,BufferedInputStream会重新从原始数据中读取下一段数据放入缓冲区。
使用缓冲区可以避免大量的磁盘IO。
不用缓冲区的类(如FileInputStream)的read方法是即时读取,每一次读取操作都是一次磁盘IO,非常耗时。
使用缓冲区后read方法操作缓冲区中的数据,减少了IO次数,提高效率。
默认缓冲区大小是8K。
private static int DEFAULT_BUFFER_SIZE = 8192;
常用方法 | 描述 |
---|---|
BufferedInputStream(InputStream in) | 构造方法,传入InputStream对象,默认缓冲区大小 |
BufferedInputStream(InputStream in, int size) | 构造方法,传入InputStream对象,缓冲区大小设置为size |
int read() | 从流中读取单个字节 |