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 :

Problème lecture de fichier (.read() )


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Points : 19
    Points
    19
    Par défaut Problème lecture de fichier (.read() )
    Bonjour à tous !

    Alors voilà, je suis bloqué pendant la création de mon application.
    En gros j'essaie de lire dans un fichier texte. Mais celui-ci ne veut rien savoir.
    J'ajoute le code au post.

    Alors mon problème ce situe au niveau de ma boucle.
    Lorsque que je lui dis de "boucler" avec read(unBuffer), (chaque boucle lire 8octets), il ne fonctionne pas.

    Le contenu du fichier: C:\Users\saokore\Desktop\

    Et quand j'écris read(), cela fonctionne. Mais je ne sais pas trop pourquoi et ça m'embête ! Quelqu'un pourrais juste m'expliquer ? Car au final le problème est résolu mais je ne comprends pas vraiment...

    Désolé de vous embêter mais comme je débute en JAVA, c'est pas trop trop easy pour moi là.

    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
    try {
    			//je vérfie si le fichier de configuration existe
    			if (fichierConfig.exists()){
    				JOptionPane.showMessageDialog(null, fichierConfig.getName(), "test", JOptionPane.INFORMATION_MESSAGE);
    				fluxDeLecture = new FileInputStream(fichierConfig);
     
    				byte[] unBuffer = new byte[8];
    				//Je parcours mon fichier
    --->Help      		while((b = fluxDeLecture.read(unBuffer)) >= 0){
    					System.out.print(b);
    				}
     
    			}
    		}
    		catch(FileNotFoundException erreur){
    		}
    		catch(IOException erreur){
    		}

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Saokore91 Voir le message
    il ne fonctionne pas.
    Mais encore ? Ton ordi explose ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    Merci pour la reponse déjà.
    Donc quand je dis il ne fonctionne pas, il m'affiche
    8881 au lieu du texte qu'il contient.

    Rien n'explose -_-"

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Euh, oui c'est un peu normal, puisque la seule chose que tu affiches, c'est b, et b est un int. Il n'y a donc aucune chance qu'il contienne tout le buffer que tu viens de lire.

    Pour afficher le buffer, il faut d'abord le transformer en String, ce qui n'est pas super pratique. Normalement pour lire un fichier texte, on utilisera plutôt un BufferedReader. Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void readFile(String file) throws IOException {
      InputStream stream = new FileInputStream(file);
      Reader rawReader = new InputStreamReader(stream, "utf-8");
      BufferedReader reader = new BufferedReader(rawReader);
     
      try {
        for(String line = reader.readLine(); line != null; line = reader.readLine()) {
          System.out.println(line);
        }
     
      } finally {
        reader.close();
      }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Alors oui ! C'est exactement ce que j'ai fait juste après car je n'arrivais pas à le faire fonctionner !

    Mais il m'afficher des chiffres quand je faisais :
    read(unBuffer) et des caractères avec read().

    Mais en tout cas, c'est compris maintenant !
    Lecture de fichier, mieux avec un BufferedReader.

    Merci à toi thelvin !

    Et bonne fin de week end !

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

Discussions similaires

  1. [NASM] Petits problèmes lecture de fichier
    Par Jaronimo dans le forum Assembleur
    Réponses: 1
    Dernier message: 01/05/2008, 14h56
  2. [XPATH] problème lecture dans fichier XML
    Par DiamonDonald dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/02/2008, 09h57
  3. Problème lecture gros fichier texte
    Par UnnamedBoy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 22/02/2008, 11h13
  4. problème lecture seule fichier image
    Par Damien69 dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2007, 16h53
  5. problème lecture de fichier
    Par nico33410 dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2006, 20h01

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