Déclaration d'essai avec les ressources en Java

Déclaration d'essai avec les ressources en Java
L'instruction TRY-With-Resources en Java fonctionne comme une déclaration d'essai avec une ou plusieurs ressources déclarées. Une ressource est appelée un objet qui exige qu'il soit fermé lorsque le programme a été traité. L'instruction TRY-WITH-RESOURCES garantit que toutes les ressources spécifiées de l'instruction TRY sont fermées après l'exécution. Les ressources sont fermées par le compilateur Java lui-même lorsque l'instruction TRY est terminée. Si les ressources ne sont pas fermées, l'application peut manquer de ressources et il pourrait y avoir une perte dans le système.

Exemple 1

L'essai avec un seul scénario de ressources est démontré dans ce qui suit pour explorer les performances de la déclaration TRY-With-Resource en Java. L'essai suivant avec l'instruction de ressource unique est utilisé pour lire le fichier:

Lorsque nous lisons le fichier avec l'instruction TRY-WITH-RESORCE, l'instruction d'importation du module FileInputStream est ajoutée en premier. Ensuite, nous construisons la classe Java «Demo1» où la méthode principale () est implémentée pour créer l'instruction du try-with-resource. Tout d'abord, nous avons un bloc d'essai où nous déclarons la ressource du flux de fichiers. Nous appelons l'objet FileInputStream «FS» qui prend le fichier d'entrée: «MyFile.SMS". Après cela, nous utilisons la ressource de fichier d'entrée à l'intérieur du bloc d'essai pour lire à partir de ce fichier. Nous déclarons l'objet «MyData» où la méthode read () est utilisée pour lire le fichier d'entrée.

Ensuite, nous avons un état de boucle de temps pour obtenir les données du fichier de l'objet «MyData». Une fois les données lues, elle est imprimée par la méthode print () qui type a jeté l'objet «MyData» dans Char. Toute erreur rencontrée avec la ressource de lecture du fichier à l'intérieur de l'instruction TRY.

Le fichier d'entrée «MyFile.txt »fourni dans le programme précédent contient les données suivantes:

Le bloc d'essai sans aucune erreur lit les données du «MyFile.txt ”qui est copié sur le terminal suivant:

Exemple 2

La démonstration simple à réalité avec des ressources est implémentée dans l'exemple précédent. Maintenant, le cas est de créer l'objet à l'intérieur de l'instruction TRY-WITH-RESOURCE de la classe personnalisée qui implémente l'interface autoclosable. Ensuite, fermez le programme au sein de la classe personnalisée.

Nous construisons une classe Java «Demo3» qui déclare la méthode principale () où nous définissons une autre classe, la «CustomRead». Ceci est notre classe personnalisée qui met en œuvre l'interface d'autoclosable pour gérer automatiquement les ressources du bloc d'essai. Ensuite, à l'intérieur de la classe personnalisée «CustomRead», nous utilisons l'opération de remplacement et appelons la méthode Close () pour fermer toutes les ressources du bloc d'essai qui sont accessibles à partir des ressources autoclosables.

Après cela, nous déployons le bloc d'essai où l'objet «i» est déclaré pour invoquer la classe CustomAnRead (). Nous ajoutons la ressource de la déclaration d'impression à l'intérieur du bloc d'essai. Enfin, nous définissons le bloc de capture qui utilise la classe d'exception pour gérer toute exception du bloc d'essai.

L'instruction TRY est affichée sur le temps d'exécution. Après l'exécution du bloc d'essai, le JVM appelle la méthode Close () qui ferme les ressources à l'intérieur du bloc d'essai.

Exemple 3

Le test peut également être utilisé avec plusieurs ressources. Dans ce cas de ressources multiples, les ressources sont fermées à l'intérieur des supports dans l'ordre inverse lorsqu'ils sont déclarés. Ayons l'exemple du test avec plusieurs ressources dans l'illustration suivante:

Nous définissons d'abord la section Instruction Try dans la méthode principale () de cette classe de programme, «Demo3». L'énoncé TRY est alloué avec plusieurs ressources. Tout d'abord, nous créons l'objet «FOS» de la classe FileOutputStream pour écrire les données dans le fichier spécifié, «MyFile.SMS". Ensuite, nous déclarons l'objet «FIS» pour le fichierInputStream et entrons le nom du fichier là-bas.

Ensuite, nous fournissons la chaîne dans la variable «STR1» et convertissons la chaîne en tableau d'octets à l'aide de la méthode GetBytes (). Après cela, nous appelons la méthode écrite () pour insérer la chaîne bytearray dans le fichier. Nous pouvons lire le contenu d'un fichier car la chaîne y est écrite. Pour cela, nous créons l'objet «Inst» du fichier d'entrée où la classe DataRainputStream () prend l'objet de flux d'entrée de fichier ou «FIS». Pour lire les données du fichier de flux d'entrée, nous utilisons la méthode disponible () du fichierintputStream qui obtient le numéro restant d'octets à partir du fichier.

Ensuite, nous avons la conversion de bytearray des données du fichier de flux d'entrée et lisez le fichier via la méthode read (). Le bytearray est ensuite passé dans le constructeur de chaîne qui est défini à l'intérieur de l'objet «Str2». Les données du fichier d'entrée sont ensuite imprimées lors de l'exécution du programme lorsque le bloc de capture n'attrapera aucune exception de l'instruction TRY.

La sortie de ressource multiple essai est indiquée ici. Il affiche les données écrites dans le fichier d'entrée, puis lit ces données à partir du fichier.

Exemple 4

Les ressources essai-avec peuvent également être fermées à l'aide du bloc final. Le bloc enfin vérifie que les ressources qui sont déclarées dans l'instruction TRY sont fermées.

Nous déclarons l'objet BufferedReader, «BuffRead», qui est déclaré en dehors de l'instruction TRY. Parallèlement à cela, nous avons un autre objet, le «Strline». Après cela, nous utilisons le bloc d'essai où l'objet «BuffRead» appelle la classe BufferReader qui définit le FileReader pour lire les données du fichier. La boucle while est déployée pour prendre les données de l'objet BuffRead à l'aide de la méthode ReadLine (). L'ioexception lors de la lecture du fichier est capturé et géré par le bloc de capture du bloc d'essai avec les ressources.

Ensuite, nous avons une implémentation d'un bloc final. Le bloc enfin est en outre déployé avec le bloc d'essai pour nettoyer les ressources de déclaration d'essai, ce qui rend le programme plus complexe. Le coup d'essai du bloc final est utilisé car il y a le risque d'une ioexception pour se produire lors de la fermeture de l'objet BuffereDreder «Buffread» à l'intérieur de ce bloc enfin, qui est également capturé et traité avec.

La sortie est affichée pour l'instruction TRY-WITH-RESOURCE avec le bloc final. Les ressources n'ont pas besoin d'être explicitement fermées parce que le JVM les ferme pour nous. Comme nous le savons, l'instruction TRY-WITH-RESOURCES gère automatiquement les ressources, ce qui rend le code plus simple et facile à lire.

Conclusion

Le principe fondamental du TRY-WITH-RESORCE Java est la gestion des ressources automobiles. Le essai avec-resource nous aide à gérer les ressources tout en gérant les exceptions. Le bloc d'essai avec les ressources soulève des exceptions supprimées. De plus, le bloc de capture ou le bloc final est toujours exécuté après la fermeture de la ressource de l'instruction TRY. Nous avons implémenté l'instruction TRY-WITH-RESORCE avec différents scénarios de cas.