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 des ints dans un fichier texte avec java.io


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Lire des ints dans un fichier texte avec java.io
    Bonjours,
    je suis actuellement en train d'essayer de rentrer des ints dans un tableau à deux dimensions d'un fichier texte mais je ne parviens pas à le remplir jusqu' au bout. J'utilise la class Scanner mais un exemple vaut mieux qu'une longue explication:

    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
     
    public void getFichier() {
     
    int[][] tileSet = new int[25][18];
    int i, j;
    i = j = 0;
    File fis;		
    Scanner scan;
     
    try {
     
     
    fis = new File("map1.txt");	 
     
    scan = new Scanner(fis);
     
     for (i = 0; i <= 25; i++)					  	  	{			  		  			  		
    	for (j = 0; j <= 18; j++)	
    	{
     
    	    if (scan.hasNextInt()) 
    	    {	
     
    	       tileSet[i][j] = scan.nextInt();
    					  			  			  		  	    }
    	 }			  			  
    					  			  			  		}	  
     
    					  		  	  		  	  	  						  	  					System.out.println(this.tileSet[25][18]);		
     
    scan.close();
     
     
     
     } catch (NullPointerException g) {
    g.printStackTrace();
     
    } catch (IOException h) {
    h.printStackTrace();
     
     }
    }
    Le fichier Texte: (map1.txt)
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    Donc il y a bien 450 chiffres (18*25)

    Le résultat du println() : 0

    Merci d'avance si quelqu'un pourrait m'éclairer sur ce problème!

  2. #2
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 562
    Points
    562
    Par défaut
    Bonsoir,
    tu as 2 erreurs :

    la borne supérieure de tes boucles :
    pour n valeurs, tu dois faire une boucle de i = 0 à i < n et pas de i = 0 à i <= n
    L'indice du premier élément d'un tableau est 0 en java.

    Donc pour un tableau de 25X18 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			for (i = 0; i < 25; i++) {
    				for (j = 0; j < 18; j++) {
    du coup, ton
    System.out.println(this.tileSet[25][18])
    retournait Zéro... Il aurait même du générer une ArrayIndexOfOutBoundsException...

    Fais plutôt un
    system.out.println(tileSet[i][j])
    dans ta boucle si tu veux vraiment afficher tes valeurs.

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

Discussions similaires

  1. Lire des données dans un fichier texte
    Par snakeisland dans le forum LabVIEW
    Réponses: 4
    Dernier message: 05/02/2014, 09h35
  2. Ecrire & Lire des énumérés dans un fichier Texte
    Par WebPac dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 10h04
  3. Lire des champs dans une fichier texte
    Par darkman13130 dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/06/2008, 16h31
  4. Lire et ecrire des variables dans un fichier texte
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2007, 14h16
  5. [vb6]:Ajuster des données dans un fichier text avec un timer
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 28/07/2006, 12h13

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