为什么java.io.File没有close()方法?

虽然java.io.RandomAccessFile确实有一个close()方法java.io.File没有。 这是为什么? 文件是否在最终确定时自动closures?

谢谢!

File类的javadoc将类描述为:

文件和目录path名的抽象表示。

File只是一个path名的表示,有几个关于文件系统(如exists() )和目录处理的方法,但实际的streaminput和输出是在别处完成的。 stream可以打开和closures,文件不能。

(我个人的观点是,Sun很不幸地创build了RandomAccessFile ,导致了与其不一致的命名混淆。)

java.io.File不表示一个打开的文件,它表示文件系统中的一个path。 所以采取close方法是没有意义的。

实际上,这个类是由图书馆作者错误命名的,应该叫做Path

本质上随机访问文件包装input和输出stream,以pipe理随机访问。 您不打开和closures文件,打开和closures文件stream。

一个BufferedReader可以打开和closures,但File永远不会打开,它只是表示文件系统中的一个path。

假设你有File f = new File(“SomeFile”); f.length(); 你不需要closures文件,因为它只是path的表示。 你应该总是考虑只closures读者/作者和事实上的stream。