透過建立 FileInputStream 物件開啟檔案進行讀取。
如果檔案不存在,FileInputStream(String filename) 建構子會拋出 FileNotFoundException。
FileNotFoundException 是 IOException 的子類別。
要讀取文件,請使用 read() 方法,該方法讀取一個位元組並傳回一個整數值。
當到達檔案結尾時,read() 傳回 -1,出錯時拋出 IOException。
使用後,必須使用 close() 方法關閉文件,以釋放系統資源。
不關閉檔案可能會導致記憶體洩漏。
範例程式使用 read() 顯示檔案內容,並使用 try/catch 區塊處理 I/O 錯誤。
注意:在Java中,當程式不釋放不再使用的記憶體資源,從而使這些資源被不必要地佔用時,就會發生記憶體洩漏。儘管該語言對未引用的物件具有自動垃圾收集功能,但該收集並不直接處理文件或網路連接等外部資源。如果不關閉文件,系統資源將保持繁忙,效能下降,並出現錯誤和失敗(例如,當嘗試開啟另一個文件時)。
上一個範例在讀取檔案的 try 區塊之後關閉流程。
Java 允許另一種方法:在finally 區塊內呼叫 close()。
使用finally區塊,無論try區塊如何結束,檔案都會關閉。
此方法保證即使發生異常,文件也會關閉。
try 區塊存取文件,finally 專門用來關閉它。
使用finally區塊的好處是確保檔案關閉,即使發生非I/O異常。
雖然在小型程式中並不重要,但在大型程式中這種方法對於避免問題至關重要。
使用finally有助於避免在出現意外異常時處理未關閉文件的麻煩。
將檔案開啟和檔案存取封裝在單一 try 區塊中並使用 finally 關閉它是最佳實踐。
這種方式可以簡化程式碼,確保資源的釋放。
fin 被初始化為 null,並且在 finally 區塊中,僅當 fin 不為 null 時才會關閉檔案。
如果開啟檔案時發生異常,這可以防止呼叫 close()。
try/catch 序列可以簡化,因為 FileNotFoundException 是 IOException 的子類別。
僅捕獲 IOException 就無需單獨捕獲 FileNotFoundException。
在這種情況下,標準異常訊息描述了錯誤。
...
} catch(IOException exc) {
System.out.println("I/O 錯誤:" exc);
}最後{
...
以上是在文件中產生條目的詳細內容。更多資訊請關注PHP中文網其他相關文章!