BufferedReader中read()方法和readLine()方法的使用
read方法
查看API文档我们可以发现BufferedReader类中的read()方法**(无参数的)**并不是继承于Read类中的read方法。

这是怎么一回事呢?
首先我们回到Read类中的read方法简介去看

这里说明了高效单字符输入的子类应该覆盖此方法
答案已经显而易见了
BufferedRead中的read()方法覆盖了原Read中的read()方法并提高了效率
BufferedReader中的read()方法与Read中的read方法有什么区别?
其实,BufferedReader作为Read的一种缓冲区,其实就是为了提高效率的,原理其实很简单:
在Read类中的read()方法是将硬盘上的字符一个个读取出来使用,
而BufferedReader中的read()方法是将缓冲区中的字符一个个读出来使用,缓冲区是主内存中特地预留出的内存,
从缓冲区里面取数据的效率一般是比直接在硬盘上取数据要快的...(缓冲区我就不介绍了,直接上例子)
**就好比**:
- 厨房里面有一大堆包子,之前每次你想吃包子总是需要跑到厨房去拿,而现在有了一个大盘子(缓冲区),
- 你就可以现在盘子里装好包子,然后想吃的时候去盘子里拿一个就好了。
简单来说就是一句话:
- 覆盖后的read()方法效率更高...
readLine方法
BufferedReader中比较有意思的方法就是这个readLine方法了,这个方法是读取一行字符的,其实原理也很简单。
readLine方法其实是使用了缓冲区的read方法(就是上面讲到的read方法)
将读到的字符进行缓冲(缓冲在一个临时容器里面),读到换行符(\n或者\r
这个主要是考量在不同操作系统上的换行符不一样)就停止(ps:不会把换行符读进去的哈),然后将结果以字符串的形式返回
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot使用@Cacheable注解实现缓存功能流程详解
最近一直再学Spring Boot,在学习的过程中也有过很多疑问。为了解答自己的疑惑,也在网上查了一些资料,以下是对@Cacheable注解的一些理解2023-01-01
Java数据结构及算法实例:选择排序 Selection Sort
这篇文章主要介绍了Java数据结构及算法实例:选择排序 Selection Sort,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下2015-06-06
Java多线程编程之读写锁ReadWriteLock用法实例
这篇文章主要介绍了Java多线程编程之读写锁ReadWriteLock用法实例,本文直接给出编码实例,需要的朋友可以参考下2015-05-05
从零到掌握Spring Boot Validation 接口校验的详细过程
本文详细介绍了SpringBoot的Validation接口校验机制,包括其核心功能、常用注解、自定义校验、以及实际应用场景,通过注解定义数据校验规则,感兴趣的朋友跟随小编一起看看吧2025-02-02


最新评论