Erreur en executant: Exception in thread "mai
bencordesse
-
kilian Messages postés 8854 Statut Modérateur -
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;
}
}
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:
- Exception in thread "javafx application thread" java.lang.nullpointerexception
- Erreur upes 1025 - Forum Téléviseurs
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
1 réponse
Salut,
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:
Et que tu changes le chemin de "eleves.txt"
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"
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?