Java 流(Stream)、文件(File)和IO
Java.io 包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標(biāo)。
Java.io 包中的流支持很多種格式,比如:基本類型、對(duì)象、本地化字符集等等。
一個(gè)流可以理解為一個(gè)數(shù)據(jù)的序列。輸入流表示從一個(gè)源讀取數(shù)據(jù),輸出流表示向一個(gè)目標(biāo)寫數(shù)據(jù)。
Java 為 I/O 提供了強(qiáng)大的而靈活的支持,使其更廣泛地應(yīng)用到文件傳輸和網(wǎng)絡(luò)編程中。
但本節(jié)講述最基本的和流與 I/O 相關(guān)的功能。我們將通過(guò)一個(gè)個(gè)例子來(lái)學(xué)習(xí)這些功能。
讀取控制臺(tái)輸入
Java 的控制臺(tái)輸入由 System.in 完成。
為了獲得一個(gè)綁定到控制臺(tái)的字符流,你可以把 System.in 包裝在一個(gè) BufferedReader 對(duì)象中來(lái)創(chuàng)建一個(gè)字符流。
下面是創(chuàng)建 BufferedReader 的基本語(yǔ)法:
BufferedReader br = new BufferedReader(new
? ? ? ? ? ? ? ? ? ? ? InputStreamReader(System.in));
BufferedReader 對(duì)象創(chuàng)建后,我們便可以使用 read() 方法從控制臺(tái)讀取一個(gè)字符,或者用 readLine() 方法讀取一個(gè)字符串。
從控制臺(tái)讀取多字符輸入
從 BufferedReader 對(duì)象讀取一個(gè)字符要使用 read() 方法,它的語(yǔ)法如下:
int read( ) throws IOException
每次調(diào)用 read() 方法,它從輸入流讀取一個(gè)字符并把該字符作為整數(shù)值返回。 當(dāng)流結(jié)束的時(shí)候返回 -1。該方法拋出 IOException。
下面的程序示范了用 read() 方法從控制臺(tái)不斷讀取字符直到用戶輸入 "q"。
BRRead.java 文件代碼:
//使用 BufferedReader 在控制臺(tái)讀取字符
import java.io.*;
public class BRRead {
? ? public static void main(String args[]) throws IOException {
? ? ? ? char c;
? ? ? ? // 使用 System.in 創(chuàng)建 BufferedReader
? ? ? ? BufferedReader b