簡體   English   中英

為什么 java.io.File 沒有 close 方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM