Signaler

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

Posez votre question maladeMathal 2Messages postés mercredi 13 novembre 2013Date d'inscription 14 novembre 2013 Dernière intervention - Dernière réponse le 14 nov. 2013 à 18:32 par KX
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());
}
Utile
+0
plus moins
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é.
Utile
+0
plus moins
Merci mais dans ce cas la comment je fait pour stocker ma ligne avec la classe scanner
KX 14875Messages postés samedi 31 mai 2008Date d'inscription ContributeurStatut 19 octobre 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);

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !