Avant JDK 7, les fichiers étaient fermés explicitement à l'aide de la méthode close(), une pratique courante dans le code existant.
JDK 7 a introduit try-with-resources, qui automatise la fermeture de ressources telles que les flux de fichiers.
Le principal avantage de l'essai avec ressources est d'éviter les fuites de mémoire et de garantir que les ressources sont libérées lorsqu'elles ne sont plus nécessaires.
La structure de base de l'essai avec ressources est :
essayez (fonctionnalité-spécifications) {
// utilise la ressource
>
La spécification de ressource déclare et initialise une ressource, qui est automatiquement fermée à la fin du bloc try.
Il n'est pas nécessaire d'appeler explicitement close(), car la ressource est gérée automatiquement.
Les try-with-resources peuvent inclure des clauses catch et enfin.
Ne peut être utilisé qu'avec des ressources qui implémentent l'interface AutoCloseable, qui inclut des classes de flux telles que FileInputStream et FileOutputStream.
Un exemple d'implémentation d'essai avec des ressources est une version modifiée du programme ShowFile.
Dans le programme, le fichier est ouvert à l'aide de l'instruction try-with-resources, où un FileInputStream appelé fin est déclaré.
La variable fin est locale au bloc try et est créée lors de sa saisie.
Lorsque vous quittez le bloc try, le fichier associé à fin est automatiquement fermé, évitant ainsi d'avoir à appeler explicitement close().
Cette approche offre l'avantage d'une gestion automatique des ressources, évitant d'oublier de fermer les fichiers.
La ressource déclarée dans l'instruction try est implicitement finale et ne peut pas être redéfinie après la création.
La portée des ressources est limitée au bloc try-with-resources.
Il est possible de gérer plusieurs ressources dans une seule instruction try, en séparant chaque spécification de ressource par un point-virgule.
Un exemple est fourni, montrant comment modifier le programme CopyFile pour utiliser try-with-resources pour gérer à la fois fin et fout.
Avantages de l'essai avec des ressources :
Les ressources telles que les fichiers sont automatiquement fermées à la fin du bloc try.
Code plus concis et optimisé par rapport à l'approche traditionnelle.
Gestion des exceptions :
Les exceptions lors de la fermeture des ressources sont supprimées mais pas perdues.
Les deux exceptions (originale et finale) sont accessibles via la liste des exceptions supprimées.
Importance de la connaissance de l'approche traditionnelle :
Obligatoire pour maintenir le code existant qui n'utilise pas de ressources d'essai.
Important pour travailler dans des environnements qui ne prennent pas en charge JDK 7 ou versions ultérieures.
Conclusion :
essayer avec les ressources est recommandé pour une gestion optimisée et robuste des ressources.
La connaissance de l'approche traditionnelle est essentielle pour les programmeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!