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 :

Lire un fichier en Java


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut Lire un fichier en Java
    Bonsoir,

    voila plusieurs heures que je cherche désespérément sur internet le moyen de lire un fichier texte via une méthode, et que cette méthode me renvois la ligne du fichier, je suppose pour l'instant qu'il n'y a qu'une ligne dans le fichier.

    J'ai essayé plusieurs codes, où éclipse me donnais soit une erreur soit cela ne faisais pas ce que je voulais.

    Mon dernier code qui pourrais faire ce que je veux, n'a pas l'air de m'aimer :
    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
    public String ouvrir(String nomFichier) 
        { 
     
    		String temp=""; 
    		try 
    		{ 
    			DataInputStream fichier; 
    			fichier=new DataInputStream(new BufferedInputStream(new FileInputStream(nomFichier))); 
    			temp=fichier.readUTF(); 
    			System.out.println("temp = "+temp);
     
     
    			fichier.close(); 
    		} 
    		catch(Exception e) 
    		{ 
    			System.err.println("Message_erreur" ); 
    		} 
    		return temp;
        }
    Je retourne donc un string (enfin je voudrais) pour pouvoir le comparer ... (c'est en fait une sauvegarde a terme de la configuration des logiciels que j'ai créé).

    J'appelle la méthode comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ligne = ouvrir("C:/essai.txt");
    Dans la console je peut lire j'utilise JRE 1.6.

    J'en appelle a votre salut...

    Merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    Dans ton exception, peux tu mettre un e.printStackTrace(); ?

    Pour pouvoir savoir ce qui est levé et surtout pourquoi.

    Merci

    Fred

  3. #3
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Tu es sûr que ton fichier existe?

    Enfin comme le dit mavina, met un e.printStackTrace() dans ta clause catch et on saura plus.

  4. #4
    Membre confirmé Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Par défaut lire un fichier en Java
    étant donnée que tu veux lire un fichier texte

    FileReader fichier = new FileReader(«monfichier.txt»);

    Il existe plusieurs méthodes de la classe FileReader qui permettent de lire un ou plusieurs caractères dans le flux. Toutes
    ces méthodes sont héritées de la classe Reader et peuvent toutes lever l'exception IOException.Une fois les traitements sur le flux terminés, il faut libérer les ressources qui lui sont allouées en utilisant la méthode
    close().

    OU bien tu utilise les flux de caractères tamponé

    Pour améliorer les performances des flux sur un fichier, la mise en tampon des données lues ou écrites permet de traiter
    un ensemble de caractères représentant une ligne plutôt que de traiter les données caractères par caractères. Le nombre
    d'opérations est ainsi réduit.
    Les classes BufferedReader et BufferedWriter permettent de gérer des flux de caractères tamponnés avec des fichiers.

    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
     
    import java.io.*;
    public class TestBufferedReader {
    protected String source;
    public TestBufferedReader(String source) {
    this.source = source;
    lecture();
    }
    public static void main(String args[]) {
    new TestBufferedReader("source.txt");
    }
    private void lecture() {
    try {
    String ligne ;
    BufferedReader fichier = new BufferedReader(new FileReader(source));
    while ((ligne = fichier.readLine()) != null) {
    System.out.println(ligne);
    }
    fichier.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

  5. #5
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par fomazou Voir le message
    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
     
    import java.io.*;
    public class TestBufferedReader {
    protected String source;
    public TestBufferedReader(String source) {
    this.source = source;
    lecture();
    }
    public static void main(String args[]) {
    new TestBufferedReader("source.txt");
    }
    private void lecture() {
    try {
    String ligne ;
    BufferedReader fichier = new BufferedReader(new FileReader(source));
    while ((ligne = fichier.readLine()) != null) {
    System.out.println(ligne);
    }
    fichier.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    Merci mais je voudrais pas avoir une classe avec un main.
    Je voudrais seulement une méthode.

  6. #6
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par fomazou Voir le message
    étant donnée que tu veux lire un fichier texte

    FileReader fichier = new FileReader(«monfichier.txt»);

    Il existe plusieurs méthodes de la classe FileReader qui permettent de lire un ou plusieurs caractères dans le flux. Toutes
    ces méthodes sont héritées de la classe Reader et peuvent toutes lever l'exception IOException.Une fois les traitements sur le flux terminés, il faut libérer les ressources qui lui sont allouées en utilisant la méthode
    close().
    Ok pour File reader, mais je comprend pas l'expression, "lever l'exception".
    Try sert a faire un test, c'est ce que j'ai compris sur le net.
    Catch est la dans le cas ou ça marche pas, comme if else, sauf que le test, c'est l'exécution du code ?

  7. #7
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Oh la, je te conseille d'aller lire le tutoriel de Anis Frikha concernant les exceptions : http://anisfrikha.developpez.com/tut...va/exceptions/ pour comprendre ce que c'est et ce qu'il faut faire en cas d'exception.

    P.S. : l'exception levée signifie que tu essaie de lire un fichier (ou un flux en général) alors que tu as atteint la fin de celui ci, End Of File Exception.

    Cordialement

    Fred

  8. #8
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par mavina Voir le message
    Salut,

    Dans ton exception, peux tu mettre un e.printStackTrace(); ?

    Pour pouvoir savoir ce qui est levé et surtout pourquoi.

    Merci

    Fred
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    java.io.EOFException
    	at java.io.DataInputStream.readFully(Unknown Source)
    	at java.io.DataInputStream.readUTF(Unknown Source)
    	at java.io.DataInputStream.readUTF(Unknown Source)
    	at gdppb.Gestion.ouvrir(Gestion.java:138)
    	at gdppb.Gestion.<init>(Gestion.java:31)
    	at gdppb.Gestion.main(Gestion.java:180)
    Message_erreur
    Citation Envoyé par 138
    temp=fichier.readUTF();
    Citation Envoyé par 31
    String ligne = ouvrir("C:/essai.txt");//lancement de la méthode ouvrir()
    Citation Envoyé par 180
    Gestion appli = new Gestion();//lancement du constructeur de la classe

Discussions similaires

  1. Lire un fichier avec Java
    Par sciencesinfo dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 19/09/2012, 14h53
  2. Lire un fichier XML : java.io.FileNotFoundException
    Par Yerffoj21 dans le forum Android
    Réponses: 15
    Dernier message: 08/03/2012, 22h18
  3. Lire un fichier en JAVA
    Par alvanoto dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 17/06/2010, 16h48
  4. [DOM] Lire un fichier simple XML en Java
    Par thomas.legoff dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2006, 16h51
  5. Réponses: 1
    Dernier message: 19/12/2005, 17h09

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