Mettre les données d'un fich.txt dans un tableau bidimensionnel

brino1987 -  
tksteph Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,
voilà, mon problème s'est comment mettre mes données de fichier.txt dans un tableaux à 2 dimensions??

mon fichier contient les données comme suit:

login=brino;password=gcr123
login=tunis;password=siliana212
login=kais;password=555ghk
...............
etc...

j'aimerais mettre dans un tableau à 2 dimensions c à d sous cette forme

| login | password |
============= |
brino | grc123 |
------------------------|
tunis | siliana212 |
------------------------|
kais |555ghk |

etc ........

svp y-il qq que peut m'aider??
merci d'avance
A voir également:

3 réponses

tksteph Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   25
 
1-Tu crée un tableau de taille le nombre de lignes de ton fichier,
2-Tu lis le fichier ligne après ligne
Tu fais un Trim(un découpage) selon le point virgule(;)
pour chaque portion obtenue tu fais encore un découpage cette fois ci selon le égale (=). Cette fois ce que tu obtien d'un coté tu le met dans le login et de l'autre coté tu le met dans les entrées password.

En gros ton problème se résume donc à une lecture d'un fichier texte!
0
brino1987 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour tksteph,
merci pour ta réponse rapide;
bon j'utilise la fonction StringTockinizer();

et voilà le code:


import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.util.StringTokenizer;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author TOSHIBA
*/
public class isValid {
public static void main(String[]args){



try {

BufferedReader buff= new BufferedReader(new FileReader("C:\\borni\\Zéro.txt"));

try

{

java.io.File fichier = new java.io.File("C:\\borni\\bornil.txt");
fichier.createNewFile(); // Cette fonction doit être appelée au sein d'un bloc TRY

}

catch (IOException EX)

{

System.out.println("Impossible de créer le fichier");

}

try{

PrintStream printStream = new PrintStream("C:\\borni\\bornil.txt");
System.setOut(printStream);
String line;
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null)

{
String s=line.trim();
String[]ligne=s.split("login=");
for(int i=0;i<ligne.length;i++){
StringTokenizer st = new StringTokenizer(ligne[i],";");


while (st.hasMoreTokens()) {

System.out.println(st.nextToken());


}



}


}
}

catch (IOException ie) {
System.err.println("Le fichier n'existe pas !");

}
} catch (FileNotFoundException e) {
System.err.println("Le fichier n'existe pas !");
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

try {

BufferedReader buff= new BufferedReader(new FileReader("C:\\borni\\bornil.txt"));

try

{

java.io.File fichier = new java.io.File("C:\\borni\\résultat.txt");
fichier.createNewFile(); // Cette fonction doit être appelée au sein d'un bloc TRY

}

catch (IOException EX)

{

System.out.println("Impossible de créer le fichier");

}

try{

PrintStream printStream = new PrintStream("C:\\borni\\résultat.txt");
System.setOut(printStream);
String line;
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null)

{
String s=line.trim();
String[]ligne=s.split("password=");
for(int i=0;i<ligne.length;i++){
StringTokenizer st = new StringTokenizer(ligne[i],"\n");


while (st.hasMoreTokens()) {

System.out.println(st.nextToken());


}



}


}
}

catch (IOException ie) {
System.err.println("Le fichier n'existe pas !");

}
} catch (FileNotFoundException e) {
System.err.println("Le fichier n'existe pas !");
}



}

}



le résultat:

brino
gcr123
tunis
siliana212
kais
555ghk

maitenant comment faire pour rendre ce résultat dans un tableau à 2 dim???

et merci
0
brino1987
 
bonjour tksteph,
merci pour ta réponse rapide;
bon j'utilise la fonction StringTockinizer();

et voilà le code:


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author TOSHIBA
*/
public class isValid {
public static void main(String[]args){



try {

BufferedReader buff= new BufferedReader(new FileReader("C:\\borni\\Zéro.txt"));

try{
String line;
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null)

{
String s=line.trim();
String[]ligne=s.split("login=");
for(int i=0;i<ligne.length;i++){
StringTokenizer st = new StringTokenizer(ligne[i],";");


while (st.hasMoreTokens()) {

System.out.println(st.nextToken());


}


}


}
}

catch (IOException ie) {
System.err.println("Le fichier n'existe pas !");

}
} catch (FileNotFoundException e) {
System.err.println("Le fichier n'existe pas !");
}
}

}

le résultat:

brino
password=grc123
tunis
password=siliana212
kais
password=555ghk
.......

maitenant comment faire pour rendre ce résultat dans un tableau à 2 dim???

et merci
0
tksteph Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   25
 
Globalement j'ai une remarque à faire:
1- A moins que tu n'aie une contrainte pariculière, je te propose de faire ton stockage dans une structure clé/Valeur genre une Map!

Un tableau à deux dimensions en un mot est une matrice et je vois difficilement un stokcage pareil dans une matrice.

Si non la solution avec la map consiste à stocker donc dans une table de hachage ou les clés sont les login et les valeurs les password

2-Si tu maitrise la structure de ton fichier txt, alors c pas la peinne de faire autant de boucles (Qui allongent la complexité de ton programme)
En gros tu as ceci:



import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author TOSHIBA
*/
public class isValid {
    public static void main(String[]args){
        try {
            BufferedReader buff= new BufferedReader(new FileReader("C:\\borni\\Zéro.txt"));
            Map map = new HashMap();
            try{
                String line;
                String login;
                String passwd;
                String loginPath;
                String passwdPath;
                // Lecture du fichier ligne par ligne. Cette boucle se termine
                // quand la méthode retourne la valeur null.
                while ((line = buff.readLine()) != null){
                    String s=line.trim();
                    String[]ligne=s.split(";"); //On sait qu'on a deux parties : le login à gauche et le password à droite
                    loginPath = ligne[0];
                    passwdPath = ligne[1];
                    login = loginPath.split("=")[1];
                    passwd = passwdPath.split("=")[1];
                    map.put(login, passwd);
                    System.out.println(login +" "+passwd);
                }
            }
            
            catch (IOException ie) {
                System.err.println("Le fichier n'existe pas !");
            }   
        } catch (FileNotFoundException e) {
            System.err.println("Le fichier n'existe pas !");
        }
        
        
        
    }
} 





Si tu veux être le meilleur, il faut que tu battes le meilleur!
0