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 :

Utiliser un fichier texte pour définir les dimensions du'ne matrice


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2006
    Messages : 453
    Points : 183
    Points
    183
    Par défaut Utiliser un fichier texte pour définir les dimensions du'ne matrice
    Bonjour,

    Comment faire pour parcourir un fichier texte afin de déterminer les dimensions d'une matrice ?

    Le fichier texte est de la forme :
    4 2 5 9
    66 77 86 99
    64 74 87 44


    Le but est d'utiliser les valeurs de la première ligne pour définir les dimensions de la matrice qui doit contenir la partie en gras. Le 4 représente le nombre de colonnes et le 2 le nombre de lignes.

    Merci.

  2. #2
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonsoir

    Je suppose que tu souhaite faire le travaille en Java.
    Ce que je peux te conseiller c'est de chercher un peu sur le net, il y'a de nombreuses ressources sur comment lire un fichier .txt en Java. Tu as à ta disposition le package "java.nio" qui te procure toute les classes nécessaires à la manipulation de fichiers. Tu devras lire ton fichier texte et enregistrer chaque information (le séparateur étant l'espace) dans une variable afin de l'utiliser à ta guise.

    Je te conseille aussi de proposer un début de code, il sera plus facile de t'aider car à partir de ton énoncé je ne vois pas très bien ou tu bloques.

    Voici une discussion qui pourrait t'aider

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2006
    Messages : 453
    Points : 183
    Points
    183
    Par défaut
    Bonsoir,
    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
    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
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintWriter;
    import java.io.FileWriter;
    import java.io.IOException;
     
    import javax.swing.JFileChooser;
     
    class Choix{
    	public static void main(String[] arg) throws IOException {
     
    		//  ***************  première partie selection du fichier **********************
            JFileChooser dialogue = new JFileChooser();
            dialogue.showOpenDialog(null);
           // première solution directe  
           // récupération du fichier sélectionné
            System.out.println("Fichier choisi : " + dialogue.getSelectedFile());
     
     
     
        // affichage
        dialogue1.showOpenDialog(null);
        System.out.println("Fichier choisi est: " + dialogue1.getSelectedFile());
     
    		///////// *************** seconde partie lecture du fichier  *******************
        File F3 = dialogue1.getSelectedFile();
        FileInputStream fis =null;
        FileOutputStream fos= null;
        try{ ///instanciation des objets
       	 fis = new FileInputStream (new File("test.txt"));
       	 fos = new FileOutputStream (F3);
       	 byte buf[] = new byte[8];
       	 int n=0;
       	 while ((n=fis.read(buf))>=0)  {
       		 fos.write(buf);
       	     for (byte bit : buf) {
       	    	 System.out.println("\t"+bit+"("+(char)bit+")");
       	    	 System.out.println(" ");
       	    	 buf= new byte[8];
       	     }
       	 } 
     
       	     } 
                   catch (FileNotFoundException e)
       	        {e.printStackTrace(); }
                   catch (IOException e)
                   {e.printStackTrace();}
                   finally 
                   {
                   	try 
                   	{if (fis!=null)  fis.close();  }
                   	catch (IOException e) {e.printStackTrace();};
                   }
    	    }  
    }
    J'ai ici deux problèmes:
    1- La lecture ne se fait pas pour toutes les lignes, la première est lue et après j'ai un message d'erreur.
    2- Comment sauvegarder les valeurs des lignes parcourues.
    Voilà, j'espère que vous pourrez m'orienter.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    comme l'a souligné wax78, mieux vaut utiliser la classe BufferedReader. Sa méthode readLine() te permet de récupérer une ligne à chaque lecture

    Je te propose ce code, j'ai donc remplacé dans ton code avec BufferedReader. Le fichier "test.txt" contient les informations de ta matrice. A chaque lecture de ligne, les éléments de la ligne en cour sont séparé grâce à la méthode split() puis enregistrés dans le tableau stringTableau (les éléments sont encore de type String), ils sont ensuite converti en int grâce à la méthode Integer.parseInt() puis enregistrés à nouveau dans le tableau intTableau:
    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
    public class Choix {
     
    	public static void main(String[] arg) throws IOException {
     
    		//  ***************  première partie selection du fichier **********************
            /* .......
             * .......
             * .......
             */
     
    		//  ***************** seconde partie lecture du fichier  *******************
    		String file= "test.txt";
    		BufferedReader br = new BufferedReader(new FileReader(file));
    		String line= "";
    		int i;
    		int ind= -1;
    		String[] stringTableau;
    		int[] intTableau= new int[50];
     
    		try {		
    			while ( (line = br.readLine()) != null ) {
    				stringTableau = line.split(" ");
     
    				for(i=0; i<stringTableau.length; i++) {
    					intTableau[++ind] = Integer.parseInt(stringTableau[i]);
    					System.out.println("intTableau["+ind+"] = "+intTableau[ind]);
    				}
    			}	
     
    			br.close();
    		}
    		catch (IOException e) {}
    	}  
    }
    je te laisse le soin de l'ajuster selon tes besoins
    En espérant t'avoir éclairé

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/03/2010, 15h30
  2. lire et utiliser les donnees d'un fichier texte pour afficher des courbes
    Par messaoudi2009 dans le forum Général Java
    Réponses: 1
    Dernier message: 29/04/2009, 21h00
  3. Réponses: 2
    Dernier message: 26/10/2008, 19h02
  4. utilisation de fichier text pour vbs
    Par eozenn dans le forum VBScript
    Réponses: 4
    Dernier message: 12/03/2008, 09h05

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