FileInputStream類
1.FileInputStream類概述
繼承關系:
java.io.FileInputStream->java.io.InputStream->java.lang.Object
實作接口:
Closeable
類的功能:
FileInputStream 從檔案系統中的某個檔案中擷取輸入位元組。哪些檔案可用取決于主機環境。
FileInputStream 用于讀取諸如圖像資料之類的原始位元組流。要讀取字元流,請考慮使用 FileReader。
2.類的屬性和行為
(1) public void close() throws IOException
功能: 關閉此檔案輸入流并釋放與此流有關的所有系統資源。
如果此流有一個與之關聯的通道,則關閉該通道。
指定者:接口 Closeable 中的 close
覆寫: 類 InputStream 中的 close
抛出: IOException - 如果發生 I/O 錯誤。
(2) public int read() throws IOException
功能: 從此輸入流中讀取一個資料位元組。如果沒有輸入可用,則此方法将阻塞。
指定者:類 InputStream 中的 read
傳回: 下一個資料位元組;如果已到達檔案末尾,則傳回 -1。
抛出: IOException - 如果發生 I/O 錯誤。
(3) public int read(byte[] b) throws IOException
功能:從此輸入流中将最多b.length個位元組的資料讀入一個位元組數組中。在某些輸入可用前,此方法将阻塞
覆寫:類 InputStream 中的 read
參數:b - 存儲讀取資料的緩沖區
傳回:讀入緩沖區的位元組總數,如果因為已經到達檔案末尾而沒有更多的資料,則傳回 -1。
抛出:IOException - 如果發生 I/O 錯誤。
(4) public int read(byte[] b, int off, int len) throws IOException
功能:從此輸入流中将最多len個位元組的資料讀入一個位元組數組中。在某些輸入可用之前,此方法将阻塞。
覆寫:類 InputStream 中的 read
參數:b - 存儲讀取資料的緩沖區。
off - 資料的起始偏移量。
len - 讀取的最大位元組數。
傳回:讀入緩沖區的位元組總數,如果因為已經到達檔案末尾而沒有更多的資料,則傳回 -1。
抛出:IOException - 如果發生 I/O 錯誤。
3.常見錯誤
在eclipse下使用FileInputStream,提示找不到指定檔案
代碼:
filename = "abc.txt" ;
FileInputStream fis = new FileInputStream(filename);
錯誤顯示:
java.io.FileNotFoundException: dbconfig.properties (系統找不到指定的檔案。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
解決方法:
因為eclipse下運作main程式時,eclipse會自動将釋出目錄作為其根目錄,是以會提示找不到檔案,将filename改為絕對目錄即可
filename = "\sdcard\...\abc.txt" ;