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

avec Java Discussion :

tableau en java rempli par fichier


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Par défaut tableau en java rempli par fichier
    bonjour

    j'arrive pas a mettre les donnée dans le tableau
    me fais une erreur

    3B Exception in thread "main" java.lang.NullPointerException
    at test_2/test_2.test_3.main(test_3.java:20)

    l'erreur ligne 20 est juste apres le j++
    ligne vide ...
    je comprend pas
    merci est bonne année 2019

    ps: la la ligne 1 est vide ,mais c'est package qui est ligne 1 sur eclipse.


    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
     
    package test_2;
    import java.io.FileInputStream;
    public class test_3 {
    	public static void main(String[] args) throws Exception {
    	    FileInputStream fis = new FileInputStream("/home/toshiba/Documents/test.bin");
    	    int tableau[] = null, i; //  CREATION DU TABLEAU A 1 DIMENSIONS
     
            int j = 1;
    	    int count = 0;
     
    	    while ((i = fis.read()) != -1) {
    	      if (i != -1) {
     
    	        System.out.printf("%02X ", i);
    	        count++;
    	      }
     
    	      tableau [j] = i;
        	  j++;   
     
    	      if (count == 16) {
    	        System.out.println("");
    	        count = 0;
    	      }
    	    }
    	    fis.close();
    	  }
     
    }

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut


    Tu déclare tableau et ne l'initialise pas (il est donc null). Tu ne peux donc pas acceder à tableau[j].

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Par défaut comment le initialiser?
    lvoila donc j augmente avec j++
    mais est ce que je met ,la valeur juste?
    je n'arrive pas avoir ce qu il met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.print(tableau[j]);
    me fait erreur si j'essaie de voir

    je joins le programme modifie

    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
    package test_2;
    import java.io.FileInputStream;
    public class test_3 {
    	public static void main(String[] args) throws Exception {
    	    FileInputStream fis = new FileInputStream("/home/toshiba/Documents/test.bin");
    	    int tableau[] = null; //  CREATION DU TABLEAU A 1 DIMENSIONS
     
    	    int i;
            int j = 1;
    	    int count = 0;
     
    	    while ((i = fis.read()) != -1) {
    	      if (i != -1) {
    	    	  tableau = new int[j]; 
    	    	  j++;
    	        System.out.printf("%02X ", i);
    	        System.out.print(tableau[j]);
    	        count++;
    	      }
     
     
    	      if (count == 16) {
    	        System.out.println("");
    	        count = 0;
    	      }
    	    }
    	    fis.close();
    	  }
     
    }

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut
    bonjour, je me joins à la discussion

    d’après mon interprétation du dernier message de giovanni, je lui répondrai par ce petit bout de code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int laTaiileDeMonTableau = 20;    // une variable de type integer initialisée à 20
    
    // déclaration d'une variable de type tableau en indiquant le type T de ses futures cases
    
    T [] tableauDeMonType;  // tableauDeMonType est déclaré comme un tableau de T ;  T =  int, char, float, double, Strings,...
    
    // Création explicite de la structure du tableau en mémoire ( new) en donnant sa taille et le type T de ses éléments.
    // Initialisation des cases du tableau avec des valeurs par défaut 
    // pour boolean par false, numérique par 0, char par caractère nul  '\0', 
    // pour les cases référence (objet) initialisation à la valeur null  (référence  nulle)
    //
    
    tableauDeMonType = new T[laTaiileDeMonTableau];    // un tableau avec une taille donnée par variable
    donc la taille d'un tableau n'est pas fixée en dur

    en une seule opération sans réaliser une création explicite via new

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // déclaration et initialisation d'un tableau à 4 cases qui contiennent 4 entiers successivement 2, 0, 1 et 9
    int [] tab = {2,0,1,9};
    Cordialement

  5. #5
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Lorsque tu fais tableau = new int[j], tu initialise ta variable tableau en indiquant qu'il s'agit d'un tableau d'entier d'une taille de j.
    Plus précisement d'une taille de la valeur de j au moment de l’exécution de cette ligne.

    Donc si par exemple j valait 2 à ce moment, ton tableau ne possède que 2 cases : tableau[0] et tableau[1]Tu ne peux donc pas accéder à tableau[j] car tableau[2] n'existe pas. Et encore moins après j++Si tu connais à l'avance la taille de ton tableau, initialise le à cette taille. (Comme proposé par Logogramme avec une taille de 20).
    Si tu ne connais pas la taille du tableau tu as 2 solutions. La "sale" tu déclare un tableau trop grand et tu es sûr que tes données rentre dedans. La propre, tu utilise un objet fait pour quand on ne connait pas la taille : ArrayList.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Par défaut
    j'aimerai lire le fichier est qu'il mette les donnée dans un tableau ...
    pour le reprendre ensuite
    si lit FF ben 256 ,0A =10 mettra dans le tableau ,jus qu’a la fin du fichier (le hex pa besoin en chiffre ca me suffit,c est juste un programme trouver ,que je penser tout simplement modifié)
    voila ce que j'aimerai
    dans la version mise plus haut,je crois avoir réglé la dimension tableau..
    mais les lire ,me fais erreur

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

Discussions similaires

  1. [i18n] Gestion par fichiers java
    Par Mister Nono dans le forum Langage
    Réponses: 6
    Dernier message: 19/03/2013, 11h59
  2. Réponses: 7
    Dernier message: 19/08/2011, 08h25
  3. Formulaire rempli par fichier XML
    Par abronsius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/04/2007, 20h41
  4. [MySQL] Tableau rempli par une BDD
    Par xender dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/05/2006, 11h58

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