閱讀275 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO: FileInputStream

FileInputStream可以以字節流的形式讀取文件內容。FileInputStream是InputStream的子類,這意味著你可以把FileInputStream當做InputStream使用(FileInputStream與InputStream的行為類似)。

這是一個FileInputStream的例子:

01 InputStream input = new FileInputStream("c:\\data\\input-text.txt");
02  
03 int data = input.read();while(data != -1) {
04  
05     //do something with data...
06  
07     doSomethingWithData(data);
08  
09     data = input.read();
10  
11 }
12  
13 input.close();

請注意,為了清晰,這裏忽略了必要的異常處理。想了解更多異常處理的信息,請參考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");
2  
3 InputStream input = new FileInputStream(file);

至於你該采用參數是String對象還是File對象的構造函數,取決於你當前是否已經擁有一個File對象,也取決於你是否要在打開FileOutputStream之前通過File對象執行某些檢查(比如檢查文件是否存在)。

最後更新:2017-05-23 12:31:47

  上一篇:go  監視器–JAVA同步基本概念
  下一篇:go  Java IO: OutputStream