¿Por qué java.io.File no tiene un método close ()?

Mientras que java.io.RandomAccessFile tiene un método close() java.io.File no. ¿Porqué es eso? ¿El archivo se cierra automáticamente en la finalización o algo así?

¡Gracias!

El javadoc de la clase File describe la clase como:

Una representación abstracta de nombres de rutas de archivos y directorios.

File es solo una representación de un nombre de ruta, con algunos métodos relacionados con el sistema de archivos (como exists() ) y el manejo del directorio, pero la entrada y salida de transmisión real se realiza en otro lugar. Los flujos se pueden abrir y cerrar, los archivos no.

(Mi opinión personal es que es bastante desafortunado que Sun haya creado RandomAccessFile , lo que causa mucha confusión con su nomenclatura inconsistente).

java.io.File no representa un archivo abierto , representa una ruta en el sistema de archivos. Por lo tanto, tener close método close no tiene sentido.

En realidad, esta clase fue mal llamada por los autores de la biblioteca, debería llamarse algo así como Path .

El archivo de acceso esencialmente aleatorio envuelve los flujos de entrada y salida para gestionar el acceso aleatorio. No abre y cierra un archivo, abre y cierra secuencias en un archivo.

Un BufferedReader se puede abrir y cerrar, pero nunca se abre un archivo, solo representa una ruta en el sistema de archivos.

Supongamos que tiene File f = new File (“SomeFile”); f.length (); No necesita cerrar los archivos, porque es la representación de la ruta. Siempre debe considerar cerrar solo los lectores / escritores y las secuencias de hecho.