Je tente de lire un ensemble de nombres à partir d'un fichier et de les additionner. Mais j'ai ajouté quelques chaînes dans le fichier aussi. J'essaie maintenant de lire les nombres les ajouter ensemble et en utilisant le bloc try/catch j'essaye d'afficher une erreur quand le dossier lit une chaîne au lieu d'un nombre entier. Cependant, dès que le code lit une chaîne à partir du fichier, il me donne l'erreur, le code ne continue pas à ajouter les numéros ensemble. Il imprime simplement l'erreur et imprime 0. Comment puis-je le modifier afin qu'il continue à lire les numéros et les ajouter ensemble ainsi que d'afficher un message d'erreur après qu'il lit une chaîne.Utilisation de Try/Catch Block pour identifier les chaînes dans un fichier
code:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.InputMismatchException;
import java.util.Scanner;
public class AddNumbers {
public static void main (String[]args) {
try{
File myFile = new File("numbers.txt");
Scanner scan = new Scanner(myFile);
int x;
int y = 0;
try{
//Read file while it has a line
while(scan.hasNextLine()){
//scan a integer value
x = scan.nextInt();
//Add the scanned value to y
y = y+x;
}
}catch(InputMismatchException e){
//If a string is found then print this error
System.err.println("Strings found! Error!");
}
System.out.println(y);
scan.close();
}catch(FileNotFoundException e){
System.err.println("No such file exists!");
System.out.println();
}
}
}
Contenu du fichier
Albert
10000
20000
30000
Ben
50000
12000
Charlie
ajoutez simplement le bloc try-catch à l'intérieur du tout au lieu de ce que vous faites – Typo
Ajouter une prise d'essai autour de x = scan.nextInt(); pour que la boucle continue – Ryan
Votre réponse peut être trouvée ici: [Poursuivre l'exécution de la boucle après avoir attrapé une exception dans try/catch] (http://stackoverflow.com/questions/13805008/continue-executing-loop-after-catching-an -exception-dans-essayer-attraper) – CubeJockey