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

Résolu
maladeMathal Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention  
 
Merci mais dans ce cas la comment je fait pour stocker ma ligne avec la classe scanner
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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