275
阿裏雲
技術社區[雲棲]
Java IO: FileInputStream
FileInputStream可以以字節流的形式讀取文件內容。FileInputStream是InputStream的子類,這意味著你可以把FileInputStream當做InputStream使用(FileInputStream與InputStream的行為類似)。
這是一個FileInputStream的例子:
01 |
InputStream input = new FileInputStream( "c:\\data\\input-text.txt" );
|
03 |
int data = input.read(); while (data != - 1 ) {
|
05 |
//do something with data...
|
07 |
doSomethingWithData(data);
|
請注意,為了清晰,這裏忽略了必要的異常處理。想了解更多異常處理的信息,請參考Java IO異常處理。
FileInputStream的read()方法返回讀取到的包含一個字節內容的int變量(譯者注:0~255)。如果read()方法返回-1,意味著程序已經讀到了流的末尾,此時流內已經沒有多餘的數據可供讀取了,你可以關閉流。-1是一個int類型,不是byte類型,這是不一樣的。
FileInputStream也有其他的構造函數,允許你通過不同的方式讀取文件。請參考官方文檔查閱更多信息。
其中一個FileInputStream構造函數取一個File對象替代String對象作為參數。這裏是一個使用該構造函數的例子:
1 |
File file = new File( "c:\\data\\input-text.txt" );
|
3 |
InputStream input = new FileInputStream(file);
|
至於你該采用參數是String對象還是File對象的構造函數,取決於你當前是否已經擁有一個File對象,也取決於你是否要在打開FileOutputStream之前通過File對象執行某些檢查(比如檢查文件是否存在)。
最後更新:2017-05-23 12:31:47