NullPointer Exception
tresor
-
tresor -
tresor -
Bonjour,
J'ai un projet à rendre demain et j'ai un petit souci qui me fait perdre du temps: Je dois lire un fichier et stocker les données dans une arrayListe, sauf que ce fichier est au format arff donc je dois éliminer les lignes qui commencent par '%' et '@' mais quand j'exécute mon code, j'ai une nullPointer Exception, quelqu'un pourrait-il m'aider svp? merci d'avance
voici le code:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class AlgoId3
private ArrayList<String> data;
public void charger(String nameFile) throws IOException{
String str;
StringTokenizer st;
BufferedReader buf1=new BufferedReader(new FileReader(nameFile));
try {
while((str=buf1.readLine())!=null){
if (str.charAt(0)!= '%' && str.charAt(0)!= '@'){// on vérifie que la ligne ne commence pas par % ou @
st=new StringTokenizer(str, ",");
while (st.hasMoreTokens()){
data.add(st.nextToken());
for (int k= 0; k<data.size(); k++)
System.out.println(data.get(k));
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
buf1.close();
}
J'ai un projet à rendre demain et j'ai un petit souci qui me fait perdre du temps: Je dois lire un fichier et stocker les données dans une arrayListe, sauf que ce fichier est au format arff donc je dois éliminer les lignes qui commencent par '%' et '@' mais quand j'exécute mon code, j'ai une nullPointer Exception, quelqu'un pourrait-il m'aider svp? merci d'avance
voici le code:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class AlgoId3
private ArrayList<String> data;
public void charger(String nameFile) throws IOException{
String str;
StringTokenizer st;
BufferedReader buf1=new BufferedReader(new FileReader(nameFile));
try {
while((str=buf1.readLine())!=null){
if (str.charAt(0)!= '%' && str.charAt(0)!= '@'){// on vérifie que la ligne ne commence pas par % ou @
st=new StringTokenizer(str, ",");
while (st.hasMoreTokens()){
data.add(st.nextToken());
for (int k= 0; k<data.size(); k++)
System.out.println(data.get(k));
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
buf1.close();
}
1 réponse
-
À propos de faire perdre du temps, il serait bien que tu nous indique sur quelle ligne intervient l'exception, que tu nous donnes le main que tu utilises, et un exemple de fichier qui plante, parce que je ne connais pas le format arff et que ça peut avoir de l'importance...
-
tu as raison je crois que ici le format arff n'a pas d'importance. En ce qui concerne le main, j'ai just créé une instance de l'objet et j'ai appelé la méthode comme suit:
public static void main(String[] args) throws IOException {
AlgoId3 test = new AlgoId3();
test.charger ("zoo.arff");
}
et voici le rendu:
Exception in thread "main" java.lang.NullPointerException
at projet.AlgoId3.charger(AlgoId3.java:75)
at projet.AlgoId3.main(AlgoId3.java:111) -
-
-