Tracer une courbe en fonction des valeurs dans un fichier
Bonjour,
je suis entrain de développer un logiciel en Java sous Eclipse.
J'ai des fichiers de ce type avec un nombre de ligne qui varie d'un fichier à l'autre:
Code :
"15/02/2012",16,17.0,3.6
"18/02/2012",5,7.4,2.5
"18/02/2012",12,7.6,2.5
...
J'ai essayé 2 méthodes mais je ne suis pas arrivé à m'en servir correctement :
- tokenizer
- split
Pour tokenizer :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| private int kTest = 0;
private String bufferComplet[] = new String[30000];
public String[] lire(String path) {
String ligne = "";
String buffer[] = new String[19];
try {
BufferedReader br = new BufferedReader(new FileReader(path));
ligne = br.readLine();
StringTokenizer st = new StringTokenizer(ligne, ",");
while ((ligne = br.readLine()) != null) {
while(st.hasMoreTokens()){
bufferComplet[kTest] = st.nextToken();
System.out.println("buffer " + kTest + " : " + bufferComplet[kTest]);
kTest++;
}
}
br.close();
}
catch (Exception e){
e.printStackTrace();
}
return bufferComplet;
} |
Avec ce code (tokenizer), je récupère à chaque fois la première ligne sans passer à la suivante.
Avec split :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| public String lire02 (String path)
{
int FIN_LIGNE = 19;
StringBuilder sb = new StringBuilder();
try{
BufferedReader buff = new BufferedReader(new FileReader(path));
try {
String line;
while ((line = buff.readLine()) != null) {
sb.append(line).append(FIN_LIGNE);
count ++;
}
}
finally {
buff.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
public String[] lire (String path) {
String buffer = lire02(path);
String[] lignes = buffer.split("\n");
String[] elements = new String[30000];
for(int i=0 ; i<count * 19 ; i++)
{
elements = lignes[i].split("\\,");
System.out.println("elements :" + elements);
}
return lignes;
} |
Avec split, rien ne marche. J'obtiens cette erreur :
java.lang.ArrayIndexOutOfBoundsException : 1
Si vous savez comment faire avec une des deux méthodes ou autrement, je veux bien de l'aide.
Bonne soirée.
Merci.