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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Points : 45
    Points
    45
    Par défaut Lire un fichier en JAVA
    Bonjour,

    Je souhaite afficher le premier caractère d'un fichier.txt via une méthode main tout ce qu'il y a de plus classique.

    Voici mon code:

    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
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.io.FileNotFoundException;
     
    public class uploaderTexte {
     
           public static void main(String[]args) throws IOException, FileNotFoundException{
            //on charge le fichier dans un flux qui sera sous forme d'une suite d'octets
            InputStream fluxOctets = getClass().getResourceAsStream("./fichier.txt");
            //on transforme cette suite d'octets en une suite de caractères
            InputStreamReader fluxCaracteres = new InputStreamReader(fluxOctets);
            //on lit la suite de caractères
            BufferedReader lecture = new BufferedReader (fluxCaracteres);
            //on renvoit le premier caractère
            String ligne = lecture.readLine();
            //on stop la lecture
            lecture.close();
            System.out.println(ligne);
        }
    }

    le soucis c'est qu'il y a l'ampoule lumineuse rouge de NEATBEANS qui me dit à cette ligne là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream fluxOctets = getClass().getResourceAsStream("./fichier.txt");
    que:
    non-static method getClass() cannot be referenced from a static context

    Pouvez-vous m'aider?

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    getClass() est une méthode d'instance...

    De plus il est déconseillé de charger les ressources de la sorte.
    On préférera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.currentThread().getContextClassLoader().getResource*

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    merci Heimdal, l'ampoule rouge a maintenant disparu

    je viens de cliquer sur RUN et voila ce que me dit NEATBEANS:

    Exception in thread "main" java.io.FileNotFoundException: C:\fichier.txt (Le fichier spécifié est introuvable)

    je ne comprend pas car le fichier.txt se trouve dans le même dossier que le programme, il me semble que la destination est juste...

  4. #4
    Membre habitué
    Inscrit en
    Juin 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Juin 2010
    Messages : 108
    Points : 190
    Points
    190
    Par défaut
    Bonjour

    comment lances tu ton programme java?

    pour lire un fichier 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
            //Le chemin absolue du fichier!
         File file = new File("C:\\MyFile.txt");
        FileInputStream fis = null;
        BufferedInputStream bis = null;
        DataInputStream dis = null;
    
    try {
          //Le stream d'entree
     
    fis = new FileInputStream(file); bis = new BufferedInputStream(fis); dis = new DataInputStream(bis);
    // dis.available() revoie 0 si plus de lignes a lire while (dis.available() != 0) { System.out.println(dis.readLine()); } // liberer les resources
    fis.close(); bis.close(); dis.close();
    } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    Pour lancer une classe, je clique droit et sélectionne RUN. Je sais qu'il y a une icône de couleur verte mais je ne la touche jamais, je crois bien qu'elle lance le projet dans son intégralité et non la classe sélectionnée, non?

    J'ai réussi à finir le mien (qui renvoit l'intégralité du contenu du fichier), semblable à bien des égards à celui que tu viens de me proposer

    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
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.io.FileNotFoundException;
     
    public class uploaderTexte{
     
           public static void main(String[]args) throws IOException, FileNotFoundException{
               InputStream fluxOctets = Thread.currentThread().getContextClassLoader().getResourceAsStream("./fichier.txt");
               InputStreamReader fluxCaracteres = new InputStreamReader(fluxOctets);
               BufferedReader lecture = new BufferedReader (fluxCaracteres);
               String ligne = lecture.readLine();
               String suite ="";
               while((ligne=lecture.readLine())!=null){
                    suite=suite+ligne;
               }
               lecture.close();
               System.out.println(suite);
        }
    }
    j'ai aussi appris de Readline() lisait une ligne et non un seul caractère comme je croyais. J'aurai dû m'en douter vu la traduction de Readline

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

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 miron dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 15/11/2007, 15h57
  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