BufferedReader中read()方法和readLine()方法的使用
read方法
查看API文檔我們可以發(fā)現(xiàn)BufferedReader類中的read()方法**(無參數(shù)的)**并不是繼承于Read類中的read方法。
這是怎么一回事呢?
首先我們回到Read類中的read方法簡介去看
這里說明了高效單字符輸入的子類應(yīng)該覆蓋此方法
答案已經(jīng)顯而易見了
BufferedRead中的read()方法覆蓋了原Read中的read()方法并提高了效率
BufferedReader中的read()方法與Read中的read方法有什么區(qū)別?
其實(shí),BufferedReader作為Read的一種緩沖區(qū),其實(shí)就是為了提高效率的,原理其實(shí)很簡單:
在Read類中的read()方法是將硬盤上的字符一個(gè)個(gè)讀取出來使用,
而BufferedReader中的read()方法是將緩沖區(qū)中的字符一個(gè)個(gè)讀出來使用,緩沖區(qū)是主內(nèi)存中特地預(yù)留出的內(nèi)存,
從緩沖區(qū)里面取數(shù)據(jù)的效率一般是比直接在硬盤上取數(shù)據(jù)要快的...(緩沖區(qū)我就不介紹了,直接上例子)
**就好比**:
- 廚房里面有一大堆包子,之前每次你想吃包子總是需要跑到廚房去拿,而現(xiàn)在有了一個(gè)大盤子(緩沖區(qū)),
- 你就可以現(xiàn)在盤子里裝好包子,然后想吃的時(shí)候去盤子里拿一個(gè)就好了。
簡單來說就是一句話:
- 覆蓋后的read()方法效率更高...
readLine方法
BufferedReader中比較有意思的方法就是這個(gè)readLine方法了,這個(gè)方法是讀取一行字符的,其實(shí)原理也很簡單。
readLine方法其實(shí)是使用了緩沖區(qū)的read方法(就是上面講到的read方法)
將讀到的字符進(jìn)行緩沖(緩沖在一個(gè)臨時(shí)容器里面),讀到換行符(\n或者\(yùn)r
這個(gè)主要是考量在不同操作系統(tǒng)上的換行符不一樣)就停止(ps:不會(huì)把換行符讀進(jìn)去的哈),然后將結(jié)果以字符串的形式返回
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 最新Xss攻擊與防護(hù)(全方位360°詳解)
這篇文章主要介紹了java 最新Xss攻擊與防護(hù)(全方位360°詳解),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01使用java + OpenCV破解頂象面積驗(yàn)證碼的示例
這篇文章主要介紹了使用java + OpenCV破解頂象面積驗(yàn)證碼的示例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02MyBatis-Plus 分頁查詢以及自定義sql分頁的實(shí)現(xiàn)
這篇文章主要介紹了MyBatis-Plus 分頁查詢以及自定義sql分頁的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Spring項(xiàng)目中使用Junit單元測試并配置數(shù)據(jù)源的操作
這篇文章主要介紹了Spring項(xiàng)目中使用Junit單元測試并配置數(shù)據(jù)源的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java面試synchronized偏向鎖后hashcode存址
這篇文章主要為大家介紹了Java面試中synchronized偏向鎖后hashcode存址詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)配置方法
這篇文章主要介紹了SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)的配置方式,Spring MVC會(huì)拋出MethodArgumentNotValidException異常,并將錯(cuò)誤信息綁定到相應(yīng)的字段上,感興趣的朋友跟隨小編一起看看吧2024-03-03Java中實(shí)現(xiàn)String字符串用逗號(hào)隔開
這篇文章主要介紹了Java中實(shí)現(xiàn)String字符串用逗號(hào)隔開,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06