Exception java

Fermé
cabistos Messages postés 20 Date d'inscription dimanche 23 mars 2014 Statut Membre Dernière intervention 1 juin 2014 - Modifié par cabistos le 17/04/2014 à 17:15
cabistos Messages postés 20 Date d'inscription dimanche 23 mars 2014 Statut Membre Dernière intervention 1 juin 2014 - 18 avril 2014 à 07:21
Bonjour,
mon code marche très bien sauf si la condition sur la derniere ligne du fichier source devient == true ; l'exception : Exception in thread "main" java.lang.NullPointerException
at allégerfile.maClass.main(maClass.java:35) est levé
svp aidez moi


voici mon code :

public static void main (String[] args) throws IOException {
// lecture fichier //
BufferedReader in = new BufferedReader(new FileReader("D://pfe//copie.txt"));
out = new PrintWriter (new FileWriter ("D://mail.txt"));
out2 = new PrintWriter (new FileWriter("d://Etrangé.txt"));
out3 = new PrintWriter (new FileWriter("d://Editable.txt"));
String line = in.readLine();

// défalcation //
//compte mail //
while (line != null){
if ((line.startsWith("EXSTRS01")) && (line.substring(780,791).startsWith("EMAILVIDE")== false) && (line.substring(830,831).startsWith("O")))
{ out.println(line); String s = in.readLine() ;
while (s.startsWith("EXSTRS01")==false )
{ out.println(s);
s = in.readLine();}}
else if ((line.startsWith("EXSTRS01"))&&(line.substring(696,746).startsWith("OEMAILVIDE")== false)&&(line.substring(746,747).startsWith("O")))
{ out.println(line); String s = in.readLine() ;
while (s.startsWith("EXSTRS01")==false){ out.println(s);s = in.readLine();
}

}

line = in.readLine();

}
in.close();
out.close();
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 17/04/2014 à 19:00
Bonjour,

Lorsque tu fais
String s = in.readLine();
il faut tester si
s==null
comme tu l'as fait pour
line
. Sinon effectivement tu vas te prendre un NullPointerException pour la dernière ligne.
1
cabistos Messages postés 20 Date d'inscription dimanche 23 mars 2014 Statut Membre Dernière intervention 1 juin 2014
18 avril 2014 à 07:21
merci KX , une dernière chose si le fichier source contient une ligne qui commence par EXSTRS01 sélectionné par le 1er if et la 2 eme EXSTRS01 répond a la condition du 2 eme if ; alors la 2 eme sera ignoré . autrement si j'ai a copier 2 comptes successives par 2 if différentes ça marche pas
0
irony42 Messages postés 94 Date d'inscription mardi 2 novembre 2010 Statut Membre Dernière intervention 21 octobre 2015 60
17 avril 2014 à 17:22
Bonjour,

C'est laquelle la ligne n°35 de ton code ?
0
cabistos Messages postés 20 Date d'inscription dimanche 23 mars 2014 Statut Membre Dernière intervention 1 juin 2014
17 avril 2014 à 17:28
while (s.startsWith("EXSTRS01")==false ) NORMALEMENT C'EST CELLE LA
0
cabistos Messages postés 20 Date d'inscription dimanche 23 mars 2014 Statut Membre Dernière intervention 1 juin 2014
17 avril 2014 à 17:53
c'est le premier if qui génère l'exception si la dernière ligne est lu sinon ça marche bien
0