/*
需求:JAVA應用程式要與外部裝置進行資料交換。
在JAVA中,對於資料的輸入、輸出操作以"流"(stream)方式進行。
JDK提供了各種各樣的"流"類,滿足對不同種類的資料進行操作。
*/
1、File類 File f = new File("java.text");
一個File對象表示了磁碟上的檔案或目錄。
File類提供了與平台無關的方法來處理檔案或目錄。
小例子:判斷某個檔案是否存在,存在就刪除,不存在就建立。
2、RandomAccessFile類
隨機訪問檔案,自身具備讀寫方法。
通過skipBytes(int x)、seek(int x)達到隨機訪問的結果。
小例子:檔案中有三名員工的資訊,按照第二名、第一名、第三名的順序列印。
3、InputStream類-------------------->位元組流
三個read()方法。
skip(long n)跳過n個位元組
available()返回可讀位元組數
程式即時處理資料資源的時候最好不要用avaliable()方法,因為太占CPU,一直用read(),沒有資源時會阻塞,幾乎不佔資源。
close()方法對於JAVA的記憶體回收行程來說並不多餘,因為當InputStream對象建立時,會在作業系統中產生某種資源,但是記憶體回收行程只能回收對象垃圾。
4、OutputStream類
三個write()方法。
flush()立即將資料寫入到緩衝區中
close()寫資料到緩衝區中並關閉
5、FileInputStream和FileOutputStream類
建立FileInputStream對象時,指定檔案的路徑應當是存在且可讀的。
6、Reader與Writer類------------------>字元流
用於對文字檔的讀寫操作。
文字檔是二進位檔案的特例。
7、PipedInputStream與PipedOutputStream類
用於線程間的通訊。
一個線程的PipedInputStream對象從另一個線程的PipedOutputStream對象讀取輸入。
要使管道通訊有用,必須同時構造管道輸入資料流和管道輸出資料流。
8、字元編碼
ASCII 最高位bit為0,用7位標識;
GB2312--(擴充)-->GBK