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

Java Discussion :

lire un fichier txt(résolu) et afficher les données d'une certaine façon(pas résolu)


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Points : 24
    Points
    24
    Par défaut lire un fichier txt(résolu) et afficher les données d'une certaine façon(pas résolu)
    Bonjour tout le monde,

    je débute en java...donc ma question sera surement évidente
    pour bcp d'entre vous.

    je dois lire plusieurs fichiers dans un répertoire qui contiennent :
    50847
    FGOOU
    97311
    CYHYBPKZLHNOZK
    46413
    NYYKPUGEBPLHHBS...


    je l'ai fait en écrivant ceci
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    class Ex1
    {
     
    	public static void main(String[] args) 
    	{
    		int j=0;
    		for (j=0;j<4;j++)
    		{
    			String specifFichier = "données"+j+".data";
     
    			try
    					{
    					ListerFichier(specifFichier);
    					}
    		catch (IOException e)
    		{
     
    			if ( e instanceof FileNotFoundException )
    				System.out.println ("Pas connu ici");
    			else
    				e.printStackTrace();
    		}
    			}
    	}
     
    	static void ListerFichier(String specifFichier) throws IOException
    	{
    			BufferedReader fluxEntrée = new BufferedReader(new FileReader(specifFichier));
     
    			String ligne = fluxEntrée.readLine();
    			while ( ligne != null )
    			{
    				System.out.println (ligne);
    				ligne = fluxEntrée.readLine();
    			}
    	System.out.println ("**********************************");
     
    }
    jusqu' ici pas de problème, j'affiche toutes les lignes.

    Je suis bloqué quand je dois effectuer cet affichage :

    Le message FGOOU a été envoyé avec succès au numéro 50847
    Le message CYHYBPKZLHNOZK a été envoyé avec succès au numéro 97311
    Le message NYYKPUGEBPLHHBS a été envoyé avec succès au numéro 46413

    etc.

    Je dois donc inverser les caractères et les numéros...

    Je ne sais vraiment pas comment m'y prendre (créer une classe, tostring etc.)

    Merci d'avance pour vos réponses.
    un débutant sympa

  2. #2
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    Salut,

    Je te propose ça
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    class Ex1
    {
     
    	public static void main(String[] args) 
    	{
    		int j=0;
    		for (j=0;j<4;j++)
    		{
    			String specifFichier = "données"+j+".data";
     
    			try
    					{
    					ListerFichier(specifFichier);
    					}
    		catch (IOException e)
    		{
     
    			if ( e instanceof FileNotFoundException )
    				System.out.println ("Pas connu ici");
    			else
    				e.printStackTrace();
    		}
    			}
    	}
     
    	static void ListerFichier(String specifFichier) throws IOException
    	{
    			BufferedReader fluxEntrée = new BufferedReader(new FileReader(specifFichier));
     
    			String num;
                            String caractere;
    			do{
    				num = fluxEntrée.readLine();
    				caractere = fluxEntrée.readLine();
     
                                    if(num != null){
                                          System.out.println("Le message "+caractere+" a été envoyé avec succès au numéro "+num);
                                   }
    			}while(num != null);
    	System.out.println ("**********************************");
     
    }
    A++

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    merci beaucoup,

    ça marche

    je suis vraiment une pive...
    faut vraiment que je m'y mette.

    j'aurais juste aimé savoir si on peut faire ça différement...en créant une classe par exemple...

    encore merci pour ta réponse si rapide.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    Salut,

    En effet, tu peux améliorer le programme en pensant un peu plus objet, tu peux faire ceci par exemple :

    Ex1.java :
    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
     
    public class Ex1{
    	private Fichier fichier[];
     
    	public Ex1(int nbFichier){
    		fichier = new Fichier[nbFichier];
     
    		for(int i = 0 ; i<nbFichier ; i++){
    			fichier[i] = new Fichier("données"+i+".data");
    		}
    	}
     
    	public void afficherTousLesFichiers(){
    		for(int i = 0 ; i<fichier.length ; i++){
    			System.out.println(fichier[i].toString());
    		}
    	}
     
    	public static void main(String[] args){
    		Ex1 ex1 = new Ex1(4);
     
    		ex1.afficherTousLesFichiers();
    	}
    }
    Fichier.java :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
     
     
    public class Fichier {
    	private String nomDuFichier;
    	private String num[], caractere[];
    	private int nbDEnregistrement;
     
     
    	public Fichier(String nom){
    		this.nomDuFichier = nom;
    		this.num = new String[50];
    		this.caractere = new String[50];
     
    		try{
    			this.ListerFichier(nom);
    		}
    		catch (IOException e){
    			if ( e instanceof FileNotFoundException )
    				System.out.println ("Pas connu ici");
    			else
    				e.printStackTrace();
    		}
    	}
     
     
    	private void ListerFichier(String nom)  throws IOException{
    		BufferedReader fluxEntrée = new BufferedReader(new FileReader(nom));
     
    		String numero,caract;
     
    		nbDEnregistrement = 0;
     
    		do{
    			numero = fluxEntrée.readLine();
    			caract = fluxEntrée.readLine();
     
    			if(numero != null){
    				num[nbDEnregistrement] = numero;
    				caractere[nbDEnregistrement] = caract;
    			}
     
    			nbDEnregistrement++;
    		}while(numero != null);
     
    		nbDEnregistrement--;
    	}
     
    	public String toString(){
    		String retour=nomDuFichier + "\n";
     
    		for(int i = 0 ; i<nbDEnregistrement ; i++){
    			retour = retour + "Le message " + caractere[i] + " a été envoyé avec succès au numéro " + num[i] + "\n";
    		}
     
    		retour = retour + "*****************************************\n";
     
    		return retour;
    	}
    }
    L'avantage est que tu ne lis qu'une fois dans chaque fichier et après tu fais ce que tu veux des informations que tu possède.

    Voilà

    A++

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/04/2014, 18h27
  2. Réponses: 6
    Dernier message: 01/03/2011, 12h13
  3. [SQL] Afficher les données d'une requete SQL
    Par griese dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/06/2006, 12h22
  4. [VBA-E] afficher les données d'une datagrid dans des zones de textes
    Par fadwa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2006, 14h51
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 16h53

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