"java.lang.NullPointer.Exception[Non resolu] [Résolu/Fermé]

maladeMathal 2 Messages postés mercredi 13 novembre 2013Date d'inscription 14 novembre 2013 Dernière intervention - 13 nov. 2013 à 17:50 - Dernière réponse : KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention
- 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());
}
Afficher la suite 

3 réponses

KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - Modifié par KX le 13/11/2013 à 18:48
0
Utile
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
maladeMathal 2 Messages postés mercredi 13 novembre 2013Date d'inscription 14 novembre 2013 Dernière intervention - 14 nov. 2013 à 11:49
0
Utile
1
Merci mais dans ce cas la comment je fait pour stocker ma ligne avec la classe scanner
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 14 nov. 2013 à 18:32
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);