2016-03-04 39 views

回答

1

技術原因是因爲一個構造函數會拋出一個非運行時異常,另一個不會。

至於爲什麼?也許是因爲File類只是一個圍繞文件系統路徑名的抽象。文件是否存在於該路徑並不重要。 FileReader將讀取操作封裝在實際的文件系統對象上,並在文件不存在或否則無法讀取時拋出異常。

4

因爲new FileReader("file")拋出checked異常FileNotFoundException其中new File("file")沒有。

請注意,new File不檢查文件是否真實存在或沒有,FileReader這樣做。

1

因爲File只是表示文件名稱的對象:

的文件和目錄路徑名的抽象表示。

雖然FileReader是用於讀取文件的內容的開放資源,並實現AutoCloseable

當不再需要它必須關閉的資源。

0

File("input.txt")尚未提交給實際文件。因此,您可以測試文件是否存在,或者打開文件以供稍後寫入。而FileReader("input.txt")實際上試圖打開指定的文件進行讀取,因此可能會拋出異常。

相關問題