IO流簡介及方法

java_cfb發表於2017-10-12

I/O流

一、File類

JAVA的程式設計過程中,我們可以將字元存入陣列或者List等集合中使用,這極大的方便了我們對資料的操作。但使用陣列或者集合時,程式關閉後資料便被系統回收了,這時我們便需要一個類將重要的資料以文件的方式儲存起來,以便下次程式執行時呼叫此文件。

 

1.1 構造方法:File file = new File(string);  

public class ReaderTest {

public static void main(String[] args) {

File file = new File("D:/test.txt"); //構造方法

}

}

1.2 常用方法

File,即檔案和目錄路徑名的抽象表示.


1.2.1 createNewFile();當且僅當具有該名稱的檔案尚不存在時,在目標地址建立路徑名所表示的檔案.

public class ReaderTest {

public static void main(String[] args) {

File file = new File("D:/test.txt");//構造方法

        try {        

file.createNewFile();  //建立方法

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

:在直接使用createNewFile,系統會報錯,因為當檔案已存在時,此方法有可能會丟擲異常,需要使用try{  }catch( ){  }抓取異常.


1.2.2 exists();測試此抽象路徑名錶示的檔案或目錄是否存在.

1.2.3 getName();返回由此抽象路徑名錶示的檔案或目錄的名稱.

1.2.4 length();返回由此抽象路徑名錶示的檔案的長度.

1.2.5 getName();獲取檔案或資料夾的名稱,不包含上級路徑.

1.2.6 getPath();返回絕對路徑,可以是相對路徑,但是目錄要指定.

:Flie類還有很多的方法,這裡僅列舉幾個較常見的方法,詳情請看圖表.

 

二、位元組流與字元流

File類可以看作是對檔案的讀取,但不提供檔案實際操作方法.而當你需要對檔案進行具體操作時,便需要使用IO流.


2.1 位元組流與字元流

IO流有兩種形式--位元組流與字元流.


2.1.1位元組流

計算機儲存的是二進位制資料,而1位元組表示8個二進位制.位元組可以表示所有的檔案(包括但不僅限於視訊音訊文件等).

位元組流應用於所有的檔案,但其讀取效率低於字元流.


2.1.2 字元流

字元流立於位元組流基礎之上,是通過編碼對位元組流進行轉換後的流.既經過編碼的位元組流.

字元流僅應用於純文字文件,但其效率高於位元組流.

 

三、位元組流的使用


3.1 位元組流的檔案讀取方法---InputStream

這個抽象類是表示輸入位元組流的所有類的超類.


3.1.1 InputStream的常用方法

返回值 方法 說明
Void close() 關閉此輸入流並釋放與流相關聯的任何系統資源
Void mark() 標記此輸入流中的當前位置
Abstract in tread() 從輸入流讀取資料的下一個位元組
void reset() 將此流重新定位到上次在此輸入流上呼叫mark方法時的位置


3.1.2 InputStream的子類


InputStream

FileInputStream

AudioInputStream

ByteArrayInputStream

StringBufferInputStream

ObjectInputStream

FilterInputStream

PipedInputStream

SequenceInputStream