Essayez Avec des Ressources vs Try-Catch

J'ai été en regardant le code, et j'ai vu essayer avec des ressources. J'ai utilisé le standard de l'instruction try-catch avant et on dirait qu'ils font la même chose. Donc ma question est Essayer Avec des Ressources vs Try-Catch quelles sont les différences entre ceux-ci, et ce qui est mieux.

Voici un essai avec des ressources :

objects jar = new objects("brand");
objects can= new objects("brand");

try (FileOutputStream outStream = new FileOutputStream("people.bin")){
    ObjectOutputStream stream = new ObjectOutputStream(outStream);

    stream.writeObject(jar);
    stream.writeObject(can);

    stream.close();
} catch(FileNotFoundException e) {
    System.out.println("sorry it didn't work out");
} catch(IOException f) {
    System.out.println("sorry it didn't work out");
}
la différence est que vous n'avez pas besoin d'appeler flux.close() dans le try-wth-ressource. Elle est appelée automatiquement af si vous aviez une clause finally qu'il se ferme. Seuls les objets implmenting Fermer ou AutoCloseable peut être utilisé dans le try-with-ressource de la clause.
Vous n'avez pas besoin de (ou plus probablement ne devrait pas) appel stream.close(); dans try{..} section. Il devrait être fait dans finally section try-with-resources sera gérer pour vous (BTW try-with-resources peut gérer de multiples ressources).

OriginalL'auteur computerquest | 2014-10-22