Java IO: FileInputStream
阿新 • • 發佈:2018-12-23
原文連結 作者: 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物件執行某些檢查(比如檢查檔案是否存在)。