Dans mon programme je peux lire un fichier csv. Ligne par ligne j'analyse des informations à une méthode. MAIS si le csv ne passe pas la vérification if, je ne veux pas appeler "otherMethod (id, new);" du tout. Donc tout le CSV doit passer, avant d'appeler otherMethod. Donc, ma question est: Comment puis-je lire dans tout le csv dans une sorte de tampon, vérifier si elle passe le test if et le traiter ensuite (ligne par ligne)?Lire csv dans le tampon, vérifier s'il passe des contrôles -> transmettre l'information ligne par ligne à la méthode
boolean csvPassed = true;
int index = 0;
double id = Double.NaN, new = Double.NaN;
while ((String line = reader.readLine()) != null) {
Scanner scanner = new Scanner(line);
scanner.useDelimiter(";");
while (scanner.hasNext()) {
//check the csv line by line
if (index == 0)
id = Integer.parseInt(data);
else if (index == 1) {
new = Integer.parseInt(data);
if (new == 10)
csvPassed = false
}
//whatever you want to do here
}
}
//after the file is checked
if(csvPassed){
// If the csv passes the check, call the method line by line...
otherMethod(id, new);
}
Si le CSV n'est pas très grand, vous pouvez lire tous les nombres dans un 'ArrayList'. Si elle est grande alors vous devez faire deux passes à travers le csv. Notez que vous pouvez arrêter de traiter des lignes supplémentaires dès que vous voyez que la valeur est 10. Enfin, votre variable nommée 'new' doit être renommée. –
Est-ce que ma réponse ci-dessous a résolu votre problème? Si oui, alors ce serait bien si vous l'acceptez, sinon laissez un commentaire indiquant votre problème s'il vous plaît. – sebhaub