"java.lang.NullPointer.Exception[Non resolu]

Résolu/Fermé
maladeMathal Messages postés 2 Date d'inscription mercredi 13 novembre 2013 Statut Membre Dernière intervention 14 novembre 2013 - 13 nov. 2013 à 17:50
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 14 nov. 2013 à 18:32
voila je dois lire un texte , recuperer 1 ligne sur 2 du texte en un tableau de caractere.
J'essaye de récupere tout le texte dans un tableau de caractère puis copier une ligne sur 2 tableau dans un autre tableau qui sera mon tableau final
le probleme les lignes n'ont pas toutes la meme taille , mais les ligne que je veux retenir elles ont la même taille
du coup je me retrouve avec l'erreur, je pense qu'elle du fait des difference des tailles de ligne
A l'aide

char [][] tab = new char [11286][]; // tableau dans lequel on veut stocker le texte caractère par car de chaque ligne
char [][] tab2 = new char[5632][48]; // tableau dans lequel on veut stocker nos proteines
try{

BufferedReader br=new BufferedReader(En);
while ((ligne=br.readLine())!=null){
if(ligne.toCharArray().length!=48){
car = (48-ligne.toCharArray().length);
for(j=0;j<11286;j++){
for(k=0;k<48;k++){
tab[k][j]=ligne.toCharArray()[j];
char [] tab3 = new char[car];
}}
}


}


br.close();
}
catch (Exception e){
System.out.println(e.toString());
}

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 13/11/2013 à 18:48
C'est bizarre de faire du Java comme on ferait du C...
Tu devrais virer tes char[][] et utiliser des List<String> à la place.
De plus regarde comment fonctionne la classe Scanner ça simplifie énormément la lecture d'un fichier contrairement au BufferedReader qui est très bas niveau...

Remarque : le NullPointerException vient du fait que tu utilises tab[k][j] alors que le tableau tab[k] n'existe pas vu qu'il n'a pas été initialisé.La confiance n'exclut pas le contrôle
0
maladeMathal Messages postés 2 Date d'inscription mercredi 13 novembre 2013 Statut Membre Dernière intervention 14 novembre 2013
14 nov. 2013 à 11:49
Merci mais dans ce cas la comment je fait pour stocker ma ligne avec la classe scanner
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 14/11/2013 à 19:17
Le Scanner n'est pas fait pour stocker les lignes mais pour les lire.
Pour le stockage utilise une liste.

List<String> list = new ArrayList<String>();

File file = new File("toto.txt");
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
String line = sc.nextLine();
list.add(line);
}
sc.close();
//System.out.println(list);
0