[英]Why doesn't java.io.File have a close method?
雖然java.io.RandomAccessFile
確實有一個close()
方法,但java.io.File
沒有。 這是為什么? 文件是在完成時自動關閉還是什么?
File
類的 javadoc 將類描述為:
文件和目錄路徑名的抽象表示。
File
只是路徑名的一種表示,有一些關於文件系統(如exists()
)和目錄處理的方法,但實際的流輸入和輸出是在別處完成的。 流可以打開和關閉,文件不能。
(我個人的觀點是,Sun 繼續創建RandomAccessFile
是相當不幸的,因為它的命名不一致導致了很多混亂。)
java.io.File
不代表打開的文件,它代表文件系統中的路徑。 因此,對其使用close
方法是沒有意義的。
實際上,這個類被庫作者錯誤命名,它應該被稱為Path
東西。
本質上隨機訪問文件包裝輸入和輸出流以管理隨機訪問。 您不是打開和關閉文件,而是打開和關閉文件的流。
BufferedReader 可以打開和關閉,但 File 永遠不會打開,它只是代表文件系統中的一個路徑。
假設,你有
File f = new File("SomeFile");
f.length();
您不需要關閉File
s,因為它只是路徑的表示。
您應該始終考慮僅關閉讀取器/寫入器和實際上的流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.