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 :

chargement fichier d'un fichier txt et utilisation de la methode split


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut chargement fichier d'un fichier txt et utilisation de la methode split
    Bonjour,
    j'utilise JDK1.7.

    j'ai des fichiers .txt fourni tel que par exemple (a l'affichage):

    OOOOO
    OOOOO
    OO.OO
    OOOOO

    et mon but est de charger ce fichier: c'est à dire remplir un tableau a double dimensions par exemple (String [][] t) tel que t[0][0].equals("O")==true; t[0][1].equals("O")==true; [...]; t[3][3].equals(".")==true; etc.

    Il apparait que seulement la 1ere ou la derniere ligne (je ne sais pas) est "chargee".




    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
    public void chargerFichier(String nom) {
    		String ligne = "";
    		String[] temp = new String[CONSTANTE_TAILLE_MAXIMUM_TABLEAU];//ça m'embete de proceder ainsi: on ne connait pas le nombre de ligne du fichier en entree 
    		String[] temp2 = new String[CONSTANTE_TAILLE_MAXIMUM_TABLEAU*CONSTANTE_TAILLE_MAXIMUM_TABLEAU];//meme remarque
     
    		try {
    			BufferedReader bfr = new BufferedReader(new FileReader(nom));
     
    			while ((ligne = bfr.readLine()) != null) {
    				temp = ligne.split("\n");//pour chaque indice dans temp[i] une chaine de caractere 
    			}
    			for (int j = 0; j < temp.length; j++) {
    				temp2 = temp[j].split("");//pour chaque indice un unique element de chaque chaine dans temp2[i] 
     
    				for (int l = 0; l < temp2.length; l++) {
    					this.tab[j][l] = temp2[l];//le but est de retablir le tableau a double entree (ainsi d'ecraser les valeurs ou non presentes), j est cense //changer a chaque iteration
    				}
    				temp2 = null;
    			}
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException ee) {
    			ee.printStackTrace();
    		}
    	}

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ((ligne = bfr.readLine()) != null) {
       temp = ligne.split("\n");//pour chaque indice dans temp[i] une chaine de caractere 
    }
    Tu remplaces a chaque fois ton résultat au lieu de le stocker.
    temp doit etre une ArrayList<String[]>.

    Au passage, le nom des variables n'est pas tres judicieux. Et le temp = ligne.split("\n"); ne sert a rien puisqu'il est apres un bfr.readLine() qui lit deja les lignes 1 à 1.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Pendant qu'on y est, on peut se demander l'intérêt de découper des Strings en plusieurs Strings de un caractère chacune.
    La structure de données devrait être List<String>, tout simplement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci, la structure de donnée List<String> convient beaucoup mieux pour traiter ce problème. L'utilisation de "char" est elle aussi plus naturelle et pertinente.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    List<List<Character>> c'est un peu lourdingue, je trouve.

    Et apparemment tu as besoin de List plutôt que de tableaux, si tu n'es pas sûr de la taille des données.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Lecture fichier .txt et utilisation des données
    Par halloumiali dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 08/03/2012, 17h10
  2. Réponses: 4
    Dernier message: 13/12/2011, 16h42
  3. [CS4] Utilisation fichiers externes (XML et txt) et accents
    Par fidecourt dans le forum Flash
    Réponses: 2
    Dernier message: 05/10/2010, 14h53
  4. Réponses: 15
    Dernier message: 28/11/2008, 17h57
  5. lecture de fichiers txt et utilisation de boucles
    Par joboy84 dans le forum Langage
    Réponses: 4
    Dernier message: 04/06/2008, 12h24

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