Erreur en executant: Exception in thread "mai

bencordesse -  
kilian Messages postés 8854 Statut Modérateur -
Bonjourà tous!

j'ai besoin de votre aide.
j'ai cette erreur qui s'affiche lorsque j'execute ces lignes de commandes:
java.lang.NullPointerException
at test.Parse.<init>(Parse.java:22)

at test.Parse.main(Parse.java:73)

Exception in thread "main"

j'utilise JBuilder X pour compiler et executer le programme. je ne comprends pas pourquoi cela ne fonctionne pas. lorsque je compile, il ne detecte pas d'erreur et quand j'execute, un erreur fatal apparait.

je vous joint le code:

merci d'avance!

package test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileNotFoundException;

public class Parse
{
BufferedReader scan;
FileReader fichier;

Parse(String file)
{
try
{
fichier = new FileReader(file);
scan = new BufferedReader(fichier);
}
catch (FileNotFoundException e)
{
System.out.println("Cannot read the file " + fichier.toString());
System.exit(-1);
}
}

boolean hasNextLine()
{
boolean ready = false;
try
{
ready = this.scan.ready();
}
catch (IOException e)
{
System.out.println("No new line");
}
return (ready);
}

String[] nextLine()
{
String line = "";
try
{
line = this.scan.readLine();
}
catch (IOException e)
{
System.out.println("No new line: " + e);
}
return (line.split(" "));
}

public void finalize()
{
try
{
scan.close();
}
catch (IOException e)
{
System.out.println("can't close: " + e);
}
scan = null;
fichier = null;
}

public static void main(String[] Arguments)
{
int i = 0;
String[] result;
Parse parse = new Parse("eleves.txt");
while (parse.hasNextLine())
{
result = parse.nextLine();
System.out.println("nom " + i + ": " + result[0] + "| prenom " + i + ": " + result[1] + "| promo " + i + ": " + result[2]);
++i;
}
parse = null;
}
}
A voir également:

1 réponse

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Parse(String file)
{
    try {
        fichier = new FileReader(file);
        scan = new BufferedReader(fichier);
    }
    catch (FileNotFoundException e) {
        System.out.println("Cannot read the file " + fichier.toString()); // <- Là
        System.exit(-1);
    }
} 


Salut,

Tu as essayé de créer un objet de type FileReader, mais si cette création échoue, alors fichier ne change pas et est égal
à null (valeur par défaut si tu ne lui en donnes pas avant).

Ensuite tu passes dans le catch, et tu essaies fichier.toString(), ce qui est l'équivalent de null.toString()
D'ou l'erreur.

Il faut en réalité que tu fasses:
System.out.println("Cannot read the file " + file);

Et que tu changes le chemin de "eleves.txt"
0
bencordesse
 
merci pour ta reponse rapide.
j'ai cependant encore une question:

qu'est ce que tu entends par redefinir le chemin de "eleves.txt"
j'ai changé la ligne que tu m'as dit et j'ais plus d'erreur . en revanche le programme me donne toujours en sortie:

Cannot read the file eleve.txt
est-ce normal?
0
kilian Messages postés 8854 Statut Modérateur 1 526 > bencordesse
 
Met le chemin complet vers eleves.txt
0