1. 程式人生 > >Java IO: FileInputStream

Java IO: FileInputStream

原文連結 作者: Jakob Jenkov 譯者: 李璟([email protected])

FileInputStream可以以位元組流的形式讀取檔案內容。FileInputStream是InputStream的子類,這意味著你可以把FileInputStream當做InputStream使用(FileInputStream與InputStream的行為類似)。

這是一個FileInputStream的例子:

InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();while(data != -1) {

    //do something with data...

    doSomethingWithData(data);

    data = input.read();

}

input.close();

請注意,為了清晰,這裡忽略了必要的異常處理。想了解更多異常處理的資訊,請參考Java IO異常處理

FileInputStream的read()方法返回讀取到的包含一個位元組內容的int變數(譯者注:0~255)。如果read()方法返回-1,意味著程式已經讀到了流的末尾,此時流內已經沒有多餘的資料可供讀取了,你可以關閉流。-1是一個int型別,不是byte型別,這是不一樣的。

FileInputStream也有其他的建構函式,允許你通過不同的方式讀取檔案。請參考官方文件查閱更多資訊。

其中一個FileInputStream建構函式取一個File物件替代String物件作為引數。這裡是一個使用該建構函式的例子:

File file = new File("c:\\data\\input-text.txt");

InputStream input = new FileInputStream(file);

至於你該採用引數是String物件還是File物件的建構函式,取決於你當前是否已經擁有一個File物件,也取決於你是否要在開啟FileOutputStream之前通過File物件執行某些檢查(比如檢查檔案是否存在)。