IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Apparition d'une erreur d'exeption


Sujet :

avec Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Par défaut Apparition d'une erreur d'exeption
    Bonjour,

    J'ai une erreur d'exception à la fin du programme et je ne sais pas comment le résoudre. Je choisis le fichier et ensuite le contenue du fichier apparait avec la méthode lire() puis il y a une erreur:

    Saisissez le nom du fichier.csv
    Pierre 06 78 08 45 36
    Paul 06 23 36 34 32
    Bertrand 06 78 67 57 78
    Exception in thread "main" java.lang.NullPointerException
    at java.util.StringTokenizer.<init>(StringTokenizer.java:199)
    at java.util.StringTokenizer.<init>(StringTokenizer.java:221)
    at lirefichier.lire(lirefichier.java:20)
    at main.main(main.java:12)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.*;
    import java.io.*;
     
    public class main{
     
    	/**
             * @param args
             */
    	public static void main(String[] args) throws IOException{
    		// TODO Auto-generated method stub
    			lirefichier lf=new lirefichier();
    			lf.lire();
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
     
    public class Saisie {
    	public static String lire_String(String question){
    		String ligne_lue=null;
    		try{
    			InputStreamReader isr = new InputStreamReader(System.in);
    			BufferedReader br= new BufferedReader(isr);
    			System.out.print(question);
    			ligne_lue=br.readLine();
    		} catch(IOException e){
    			System.err.println(e);
    		} 
    		return ligne_lue;
    	}
     
    	public static int lire_int(String question){
    		return Integer.parseInt(lire_String(question));
    	}
     
    	public static double lire_double(String question){
    		return Double.parseDouble(lire_String(question));
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import java.io.*;
    import java.util.*;
     
    public class lirefichier {
    	String nomfichier;
     
     
    	public lirefichier(){
    		nomfichier=Saisie.lire_String("Saisissez le nom du fichier.");
    	}
     
    	public void lire() throws IOException{
    		String ligne;
     
    		FileReader f=new FileReader(this.nomfichier);
    		BufferedReader entree=new BufferedReader(f);
    		String nom="",numero="";
    		do{
    			ligne=entree.readLine();
    			StringTokenizer st=new StringTokenizer(ligne,";");
    			nom=st.nextToken();
    			numero=st.nextToken();
    			System.out.println(nom+" "+numero);
    		}while(ligne!=null);
    		entree.close();
     
    	}
     
    	public void ajout() throws IOException{
    		String nom, numero;
    		FileWriter fw=new FileWriter(this.nomfichier,true);
    		PrintWriter sortie=new PrintWriter(fw);
    		nom=Saisie.lire_String("Saisissez le nom de la personne.");
    		numero=Saisie.lire_String("Saisissez le numero de la personne.");
    		sortie.println(nom+";"+numero);
    		sortie.close();
     
    	}
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public void lire() throws IOException{
    		String ligne;
     
    		FileReader f=new FileReader(this.nomfichier);
    		BufferedReader entree=new BufferedReader(f);
    		String nom="",numero="";
    		do{
    			ligne=entree.readLine();
    			StringTokenizer st=new StringTokenizer(ligne,";");
    			nom=st.nextToken();
    			numero=st.nextToken();
    			System.out.println(nom+" "+numero);
    		}while(ligne!=null);
    		entree.close();
     
    	}
    Simplement car tu vas trop loin dans ta boucle do...while de la methode "lire".
    car a la fin, ta ligne sera nulle mais il fera d'abord les operations avant de s'apercevoir qu'elle est nulle => Exception.

    Essaie plutot sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public void lire() throws IOException{
    		String ligne;
     
    		FileReader f=new FileReader(this.nomfichier);
    		BufferedReader entree=new BufferedReader(f);
    		String nom="",numero="";
    		while((ligne=entree.readLine()) != null)
    		{
    			StringTokenizer st=new StringTokenizer(ligne,";");
    			nom=st.nextToken();
    			numero=st.nextToken();
    			System.out.println(nom+" "+numero);
    		}
    		entree.close();
     
    	}
    sa marchera mieux

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Par défaut
    Je te remercie, ça marche bien.

    A+

Discussions similaires

  1. [XL-2013] Apparition aléatoire d'une erreur 400
    Par Maair dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/01/2015, 15h58
  2. C++Builder fait une erreur de calcul
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2004, 22h27
  3. [VB6] Source D'une erreur
    Par krest dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/07/2003, 17h33
  4. [procédure PG] Une erreur mystérieuse...ou pas
    Par doohan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/07/2003, 17h16
  5. Ne pas formater une erreur
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/03/2003, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo