Java中BufferedReader到底是一個什么類

1、java.io.BufferedReaderjava.io.BufferedWriter類各擁有8192字符的緩沖區(qū)。當BufferedReader在讀取文本文件時,會先盡量從文件中讀入字符數據并置入緩沖區(qū),而之后若使用read()方法,會先從緩沖區(qū)中進行讀取。如果緩沖區(qū)數據不足,才會再從文件中讀取,使用BufferedWriter時,寫入的數據并不會先輸出到目的地,而是先存儲至緩沖區(qū)中。如果緩沖區(qū)中的數據滿了,才會一次對目的地進行寫出。

2、從標準輸入流System.in中直接讀取使用者輸入時,使用者每輸入一個字符,System.in就讀取一個字符。為了能一次讀取一行使用者的輸入,使用了BufferedReader來對使用者輸入的字符進行緩沖。readLine()方法會在讀取到使用者的換行字符時,再一次將整行字符串傳入。

3、System.in是一個位流,為了轉換為字符流,可使用InputStreamReader為其進行字符轉換,然后再使用BufferedReader為其增加緩沖功能。例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

下面的示例示范了BufferedReader和BufferedWriter的使用。可以在文字模式下輸入字符,程序會將輸入的文字存儲至指定的文件中,如果要結束程序,輸入quit字符串即可。


mport java.util.*; 
import java.io.*; 

public class BufferedReaderWriterDemo { 
    public static void main(String[] args) { 
        try { 
            //緩沖System.in輸入流 
            //System.in是位流,可以通過InputStreamReader將其轉換為字符流 
            BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in)); 
            //緩沖FileWriter 
            BufferedWriter bufWriter = new BufferedWriter(new FileWriter(args[0])); 
            String input = null; 
            //每讀一行進行一次寫入動作 
            while(!(input = bufReader.readLine()).equals("quit")) { 
                bufWriter.write(input); 
                //newLine()方法寫入與操作系統(tǒng)相依的換行字符,依執(zhí)行環(huán)境當時的OS來決定該輸出那種換行字符 
                bufWriter.newLine(); 
            } 
            bufReader.close(); 
            bufWriter.close(); 
        } catch(ArrayIndexOutOfBoundsException e) { 
            System.out.println("沒有指定文件"); 
        } catch(IOException e) { 
            e.printStackTrace(); 
        } 
    } 
} 
//運行后會在目錄下產生一個文件test2.txt,并在其中寫入剛才輸入的內容。 


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1 IO(二)No19 【 緩沖流:內置了緩沖區(qū),對現(xiàn)有的流對象進行了封裝,實現(xiàn)了高效的讀寫操作并增強了功能 ...
    征程_Journey閱讀 724評論 0 1
  • 概述: 1、IO流:即Input Output的縮寫。 2、特點:1)IO流用來處理設備間的數據傳輸。2)Java...
    玉圣閱讀 1,270評論 0 3
  • 一、IO流整體結構圖 流是一組有順序的,有起點和終點的字節(jié)集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱...
    慕凌峰閱讀 1,191評論 0 12
  • -1- 小夏是我的前同事,一米六八的個子,一百來斤,大長腿。愛穿短褲,喜歡畫妝。 記得她剛來公司的時候正值夏天,她...
    余小魚MsYu閱讀 1,025評論 6 17
  • 我晚上空閑時間拿來讀書我努力學習 聽古典樂聽鋼琴曲 努力減肥每晚肚皮都貼后背還死撐看吃播 也保持快樂的心情不停鼓勵...
    waterlily77閱讀 235評論 0 0