BufferedReader中read()方法和readLine()方法的使用
read方法
查看API文檔我們可以發(fā)現BufferedReader類中的read()方法**(無參數的)**并不是繼承于Read類中的read方法。

這是怎么一回事呢?
首先我們回到Read類中的read方法簡介去看

這里說明了高效單字符輸入的子類應該覆蓋此方法
答案已經顯而易見了
BufferedRead中的read()方法覆蓋了原Read中的read()方法并提高了效率
BufferedReader中的read()方法與Read中的read方法有什么區(qū)別?
其實,BufferedReader作為Read的一種緩沖區(qū),其實就是為了提高效率的,原理其實很簡單:
在Read類中的read()方法是將硬盤上的字符一個個讀取出來使用,
而BufferedReader中的read()方法是將緩沖區(qū)中的字符一個個讀出來使用,緩沖區(qū)是主內存中特地預留出的內存,
從緩沖區(qū)里面取數據的效率一般是比直接在硬盤上取數據要快的...(緩沖區(qū)我就不介紹了,直接上例子)
**就好比**:
- 廚房里面有一大堆包子,之前每次你想吃包子總是需要跑到廚房去拿,而現在有了一個大盤子(緩沖區(qū)),
- 你就可以現在盤子里裝好包子,然后想吃的時候去盤子里拿一個就好了。
簡單來說就是一句話:
- 覆蓋后的read()方法效率更高...
readLine方法
BufferedReader中比較有意思的方法就是這個readLine方法了,這個方法是讀取一行字符的,其實原理也很簡單。
readLine方法其實是使用了緩沖區(qū)的read方法(就是上面講到的read方法)
將讀到的字符進行緩沖(緩沖在一個臨時容器里面),讀到換行符(\n或者\r
這個主要是考量在不同操作系統(tǒng)上的換行符不一樣)就停止(ps:不會把換行符讀進去的哈),然后將結果以字符串的形式返回
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot使用@Cacheable注解實現緩存功能流程詳解
最近一直再學Spring Boot,在學習的過程中也有過很多疑問。為了解答自己的疑惑,也在網上查了一些資料,以下是對@Cacheable注解的一些理解2023-01-01
Java數據結構及算法實例:選擇排序 Selection Sort
這篇文章主要介紹了Java數據結構及算法實例:選擇排序 Selection Sort,本文直接給出實現代碼,代碼中包含詳細注釋,需要的朋友可以參考下2015-06-06
SpringBoot中yml多環(huán)境配置的3種方法
這篇文章主要給大家介紹了SpringBoot中yml多環(huán)境配置的3種方法,文中有詳細的代碼示例供大家參考,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2023-10-10
Java多線程編程之讀寫鎖ReadWriteLock用法實例
這篇文章主要介紹了Java多線程編程之讀寫鎖ReadWriteLock用法實例,本文直接給出編碼實例,需要的朋友可以參考下2015-05-05
Java多線程通訊之wait,notify的區(qū)別詳解
這篇文章主要介紹了Java多線程通訊之wait,notify的區(qū)別詳解,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下2018-07-07
從零到掌握Spring Boot Validation 接口校驗的詳細過程
本文詳細介紹了SpringBoot的Validation接口校驗機制,包括其核心功能、常用注解、自定義校驗、以及實際應用場景,通過注解定義數據校驗規(guī)則,感興趣的朋友跟隨小編一起看看吧2025-02-02

