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

Entrée/Sortie Java Discussion :

[FileWriter] insertion des résultats null dans le fichier plat


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 21
    Points
    21
    Par défaut [FileWriter] insertion des résultats null dans le fichier plat
    Bonjour,

    voici ma problématique : j'execute une requete SQL et le résultat de cette requete je l'insère dans un fichier par FileWriter.

    comme ma table a pas mal de colonne je fais un test sur 2 colonnes uniquements, voici un fragement du code (ceci est opérationnel : il execute et rempli le fichier correctement, userid et useralias renvoie des valeurs non null)
    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
     
    //Ouverture FileWriter
    FileWriter fw = new FileWriter("fichier.csv");
    // Parcours des lignes pour mise à jour
    while (rs.next()) {
    	// Parcours de la table
    	String userid = rs.getString(1);
    	String useralias = rs.getString(2);
    	System.out.println("** userid = " + userid + ", useralias = " + useralias);	
     
    //Elements à insérer dans le fichier
    	fw.write(userid);
    	fw.write(" ");
    	fw.write(useralias);
    	fw.write('\n');
    		}
    // fermeture du fichier écrit
    fw.close();
    donc ceci est ok, par contre avec l'ensemble de mes colonnes voici ce que cela me donne comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    java.lang.NullPointerException
    	at java.io.Writer.write(Unknown Source)
    	at com.tools.migration.X.spoolFile(X.java:285)
    	at com.migration.X.main(X.java:118)
    Exception in thread "main"
    Après investigation il semble qu'il n'apprécie pas lorsque la requete renvoi une valeur null (ligne de la colonne vide). Du coup j'ai fait des tests sur d'autres colonnes non vide et... bingo tout se déroule bien.

    D'où ma problématique : comment faire pour que l'insertion continue de se dérouler meme si la valeur de la requete retourne un null.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    Tu peux utiliser la méthode statique String.valueOf() qui te renverra la chaine "null" si l'objet est null, cela t'évitera l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fw.write( String.valueOf( tonchamp ) );
    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 21
    Points
    21
    Par défaut
    Salut AdiGuba,

    Ca marche Mais.... Il y a un mais, en faite dans le fichier, à la place d'avoir un blanc/vide j'ai la valeur 'null' écrit en toute lettre (rire nerveux).

    As tu une idée pour que ce null soit pris en compte en tant qu'un blanc/vide tel que par exemple :
    valeur 1, valeur 2, valeur3, valeur 4 = toto1, , ,texte,encoretexte

    Encore une fois merci pour ton aide.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 21
    Points
    21
    Par défaut
    J'y pense, est il possible de faire un truc de ce genre :

    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
     
    while (rs.next()) {
    String userid = rs.getString(1);
    String useralias = rs.getString(2);
    String profile = rs.getString(3);
     
    if String.valueOf(i) = null // où i serait la valeur de l'index des colonnes
    (" ") // valeur à mettre dans le fw.write
     
    //Elements à insérer dans le fichier
    fw.write(userid);
    fw.write(" ");
    fw.write(useralias);
    fw.write(" ");
    fw.write(la condition du if);
    il manque pas mal de chose dans ce code, je ne suis pas sur de la façon de concevoir le if. Si quelqu'un peut m'aider à compléter cette portion ?

    Merci

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Pakkaï
    Ca marche Mais.... Il y a un mais, en faite dans le fichier, à la place d'avoir un blanc/vide j'ai la valeur 'null' écrit en toute lettre (rire nerveux).
    Ben c'est ce que je te disais dans mon précédent post et que je pensais que tu voulais obtenir :
    Citation Envoyé par adiGuba
    la méthode statique String.valueOf() qui te renverra la chaine "null" si l'objet est null
    Si tu veux éviter cela il te suffit de vérifier la valeur de ta référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fw.write( tonchamp!=null ? tonchamp : "" );
    Ou carrément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (tonchamp!=null) {
          fw.write( tonchamp );
    }
    a++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 21
    Points
    21
    Par défaut
    Mais oui élémentaire : fw.write(tonchamp!=null ? tonchamp : " ");


    C'est nickel, merci bien

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. WS : Gestion des valeurs null dans le résultat
    Par ALEX731 dans le forum Services Web
    Réponses: 5
    Dernier message: 15/05/2013, 10h16
  2. Réponses: 3
    Dernier message: 22/01/2013, 17h23
  3. récupérer des données saisies dans un fichier
    Par natie_49 dans le forum C++
    Réponses: 6
    Dernier message: 24/11/2005, 12h29
  4. ecriture caractere null dans un fichier
    Par Mitox dans le forum C
    Réponses: 5
    Dernier message: 08/11/2005, 16h52
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 22h05

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