Java中BufferedReader到底是一個什么類?


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

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()方法寫入與操作系統相依的換行字符,依執行環境當時的OS來決定該輸出那種換行字符 
				bufWriter.newLine(); 
			} 
			bufReader.close(); 
			bufWriter.close(); 
		} catch(ArrayIndexOutOfBoundsException e) { 
			System.out.println("沒有指定文件"); 
		} catch(IOException e) { 
			e.printStackTrace(); 
		} 
	} 
} 
//運行后會在目錄下產生一個文件test2.txt,並在其中寫入剛才輸入的內容。 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM