[英]BufferedReader in Scanner's constructor
我正在研究BufferedReader,Scanner和InputStreamReader類及其差異,我理解每個類的目的。 我想要一個解釋來澄清一件事:在Scanner的構造函數中傳遞BufferedReader的目的是什么? 這樣做的具體原因是什么? 以下是我所指的例子。
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader("file....")));
//more code here.........
BufferedReader將創建一個緩沖區。 這應該可以更快地從文件中讀取。 為什么? 因為緩沖區充滿了文件的內容。 所以,你把一大塊文件放在RAM中(如果你處理小文件,緩沖區可以包含整個文件)。 現在,如果掃描儀想要讀取兩個字節,它可以從緩沖區讀取兩個字節,而不必向硬盤驅動器請求兩個字節。
一般來說,讀取10次4096字節而不是4096次10字節要快得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.