Java.lang.ArrayIndexOutOfBoundsException
AHop
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -

Bonjour j'arrive pas à détecter c'est quoi l'erreur
package calcul; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class A1 { static String Newligne = System.getProperty("line.separator"); public static void main(String[] args) { String csvFile = "d:/new 1.txt"; String csvFile1 = "d:/requests1.txt"; List<LineFile> list; try { list = ListFromTXT(csvFile); TXTFromList(list, csvFile1); List<LineFile> list1 = ListFromTXT(csvFile1); for (int i = 0; i < list1.size(); i++) { LineFile lf = list1.get(i); System.out.println(lf.getAttribute3() + " + " + lf.getAttribute4() + " = " + lf.getAttribute9()); System.out.println(lf.getAttribute3() + " + " + lf.getAttribute5() + " = " + lf.getAttribute10()); System.out.println(lf.getAttribute5() + " + " + lf.getAttribute4() + " = " + lf.getAttribute11()); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void TXTFromList(List<LineFile> liste_files, String file_name) throws IOException { File fichier_clt = new File(file_name); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter( fichier_clt, true)); for (LineFile lfile : liste_files) { String cont = ""; cont = cont + lfile.getAid() + ","; cont = cont + lfile.getAttribute2() + ","; cont = cont + lfile.getAttribute3() + ","; cont = cont + lfile.getAttribute4() + ","; cont = cont + lfile.getAttribute5() + ","; cont = cont + lfile.getAttribute6() + ","; cont = cont + lfile.getAttribute7() + ","; cont = cont + lfile.getAttribute8() + ","; cont = cont + lfile.getAttribute9() + ","; cont = cont + lfile.getAttribute10() + ","; cont = cont + lfile.getAttribute11(); cont = cont + Newligne; cont = cont + Newligne; cont = cont + Newligne; bufferedWriter.write(cont); } bufferedWriter.close(); } public static List<LineFile> ListFromTXT(String file_name) throws IOException { BufferedReader br = null; String line = ""; ArrayList<LineFile> files = new ArrayList<LineFile>(); try { br = new BufferedReader(new FileReader(file_name)); int cpt = 0; while ((line = br.readLine()) != null) { if (cpt > 0) { String[] ls = line.split(","); LineFile lineFile = new LineFile(); lineFile.setAttribute1(ls[0]); lineFile.setAttribute2(ls[1]); lineFile.setAttribute3(ls[2]); lineFile.setAttribute4(ls[3]); lineFile.setAttribute5(ls[4]); lineFile.setAttribute6(ls[5]); lineFile.setAttribute7(ls[6]); lineFile.setAttribute8(ls[7]); // int att3 = Integer.parseInt(lineFile.getAttribute3()); int att4 = Integer.parseInt(lineFile.getAttribute4()); int att5 = Integer.parseInt(lineFile.getAttribute5()); lineFile.setAttribute9(att3 + att4 + ""); files.add(lineFile); lineFile.setAttribute10(att3 + att5 + ""); files.add(lineFile); lineFile.setAttribute11(att5 + att4 + ""); files.add(lineFile); } cpt++; } return files; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); return null; } } } } }
1 réponse
Bonjour,
À quelle ligne de code correspond la ligne 106 chez toi ?
Je pense que ça correspond à la ligne 110 sur le site :
Ton exception signifie que
Remarque : on pourrait pas mal simplifier ton code, d'une part sur la manière de traiter un fichier texte, d'autre part dans ta structure de LineFile, parce que setAttribute1,2,3...7,8 c'est trop compliqué, il te faut un tableau pour faire ça bien.
À quelle ligne de code correspond la ligne 106 chez toi ?
Je pense que ça correspond à la ligne 110 sur le site :
lineFile.setAttribute2(ls[1]);
Ton exception signifie que
ls[1]n'existe pas ce qui peut arriver quand
String[] ls = line.split(",");renvoit un tableau avec une seule case, c'est à dire qu'il n'y a pas de virgule dans line...
Remarque : on pourrait pas mal simplifier ton code, d'une part sur la manière de traiter un fichier texte, d'autre part dans ta structure de LineFile, parce que setAttribute1,2,3...7,8 c'est trop compliqué, il te faut un tableau pour faire ça bien.