141 votes

Pourquoi java.io.File n'a pas de méthode close ()?

Alors que java.io.RandomAccessFile a un close() méthode java.io.File ne fonctionne pas. Pourquoi donc? Le fichier est-il automatiquement fermé lors de la finalisation?

Merci!

154voto

biziclop Points 21446

La javadoc de l' File classe décrit la classe:

Une représentation abstraite de fichier et de répertoire des chemins d'accès.

File n'est qu'une représentation d'un chemin, avec un peu de méthodes concernant le système de fichiers (comme exists()) et le répertoire de la manipulation, mais réelle streaming d'entrée et de sortie se fait ailleurs. Les flux peuvent être ouverts et fermés, les fichiers ne peuvent pas.

(Mon opinion personnelle est qu'il est assez regrettable que le Soleil a ensuite continué à créer RandomAccessFile,, causant beaucoup de la confusion avec son incompatibilité de nommage.)

77voto

axtavt Points 126632

java.io.File ne représente pas un fichier ouvert , il représente un chemin dans le système de fichiers. Par conséquent, avoir la méthode close n'a pas de sens.

En fait, cette classe a été mal nommée par les auteurs de la bibliothèque, elle devrait s'appeler quelque chose comme Path .

6voto

Speck Points 891

Le fichier d'accès essentiellement aléatoire encapsule les flux d'entrée et de sortie afin de gérer l'accès aléatoire. Vous n'ouvrez pas et ne fermez pas un fichier, vous ouvrez et fermez des flux en un fichier.

6voto

Saher Points 2439

Un BufferedReader peut être ouvert et fermé mais un fichier n'est jamais ouvert, il représente simplement un chemin dans le système de fichiers.

4voto

Supposons que vous avez File f = new File ("SomeFile"); longueur f (); Vous n’avez pas besoin de fermer les fichiers, car c’est la représentation du chemin. Vous devriez toujours envisager de fermer uniquement les lecteurs / écrivains et d'enregistrer les flux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X