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 :

Besoin d'aide sur un NullPointerException


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Besoin d'aide sur un NullPointerException
    Bonjour à tous,
    Voila je suis entrain de coder l'algorithme de huffman pour un projet scolaire.
    Je viens tout juste de commencer et je suis déja bloqué sur l'erreur java.lang.NullPointerException.

    Voici mes lignes de code concernés :

    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
    public class Main {
     
        public static void main(String[] args) {
     
               // input/output file names
                String inputFileName  = "/home/brycebtz/NetBeansProjects/Huffman/toto.txt";
     
                BufferedReader inputStream = new BufferedReader(new   FileReader(inputFileName));
     
                _inLine = null;
                // Sauvegarde de chaque octet du fichier dans la variable inLine
                while ((_inLine = inputStream.readLine()) != null) {
                    System.out.println(_inLine);
                }
    ///////// ERREUR ICI
                System.out.println(_inLine.length());
                inputStream.close();
     
            } catch (IOException e) {
                System.out.println("IOException:");
                e.printStackTrace();
            }   
    } // Fin du main
    Erreur obtenue :

    Exception in thread "main" java.lang.NullPointerException
    at Main.main(Main.java:67)
    Java Result: 1
    J'ai besoin d'utiliser la fonction length pour connaitre la taille de mon String, et j'obtient cette erreur. Par contre " System.out.println(_inLine);" fonctionne puisque ca m'affiche le contenu texte du fichier toto.txt.
    Mais dès que je veut appeler la méthode length ou tout autre méthode j'obtient la même erreur.
    Merci d'avance pour votre aide.
    A+

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 632
    Points
    21 632
    Par défaut
    Regarde ta boucle juste avant. Elle ne s'arrête que si _inline est null...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Oui en effet puisque la fonction readLine() me retourne null si elle a atteind la fin de fichier. De plus la System.out.println(_inLine); fonctionne et m'affiche le texte contenu dans le fichier toto.txt. Quel est le problème avec ma boucle ?

  4. #4
    Su
    Su est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    tu devrais surement décomposer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
                 _inLine = null;
                 _inLine = inputStream.readline();
     
                // Sauvegarde de chaque octet du fichier dans la variable inLine
                while ( _inLine != null ) {
                    System.out.println(_inLine);
                }
    et également vérifier, la valeur de ton _inLine avant de rentrer dans le while. De sorte à ce que tu saches si ta lecture est correcte.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 104
    Points : 140
    Points
    140
    Par défaut
    Bonjour,

    Comme le dit thelvin, tu ne sors de la boucle qui si _inLine vaut NULL, donc _inLine.length() ne peut que provoquer une exception.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                _inLine = null;
                // Sauvegarde de chaque octet du fichier dans la variable inLine
                while ((_inLine = inputStream.readLine()) != null) {
                    System.out.println(_inLine);
                }
    ///////// ERREUR ICI CAR _inLine vaut toujours NULL
                System.out.println(_inLine.length());
                inputStream.close();
    Peut-être devrais-tu déplacer la ligne en erreur à l'intérieur de la boucle, où _inLine ne vaut jamais NULL ?

Discussions similaires

  1. besoin d'aide sur trigger
    Par devalender dans le forum SQL
    Réponses: 2
    Dernier message: 18/07/2004, 23h28
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 17h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 11h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 20h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 13h19

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