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 :

Remplir une Arraylist à partir d'un fichier csv


Sujet :

Entrée/Sortie Java

  1. #61
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Bah, c'est exactement la même erreur.. tu l'as bien ajouté le charset comme je t'ai indiqué ? Tu n'avais pas cette erreur avec tes FileReader ? Parce que ça utilise exactement le même charset qu'avec FileReader (Charset.defaultCharset()) !
    Oui exactement pareil, je viens de vérifier. Non du tout, le programme compilait correctement pendant un moment

  2. #62
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Avec les mêmes fichiers ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #63
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Oui, pas un de moins ni un de plus

  4. #64
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je ne vois pas pourquoi ça ne fonctionne pas alors.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #65
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Je ne vois pas pourquoi ça ne fonctionne pas alors.
    Ah :/
    Mais apparemment l'erreur viendrait de la boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(String line = reader.readLine(); line!=null; line=reader.readLine()) {
    Je sais pas si ca t'aide..

  6. #66
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Non, le problème c'est l'encodage du fichier : on le lit avec un charset qui n'est pas le bon.

    Montre-moi le code actuel de la méthode public static void collect(String file, int lineToSkip, String splitString, int dataIndex, String name, int countryIndex, Map<String, Map<String,String>> map) throws IOException {
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #67
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    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 static void collect(String file, int lineToSkip, String splitString, int dataIndex, String countryName, int countryIndex, Map<String, Map<String,String>> map) throws IOException {
     
    	try(BufferedReader reader=Files.newBufferedReader(Paths.get(file),Charset.defaultCharset())) {
    		for(String line = reader.readLine(); line!=null; line=reader.readLine()) {
    			if ( lineToSkip>0 ) { // on saute les lignes au début
    				lineToSkip--;
    				continue;
    			}
    			final String[] data = line.split(splitString);
    			String value = data[dataIndex];
    			if( countryIndex==-1 ) {
    				final Map<String,String> dataMap=new HashMap<>();
    				dataMap.put(countryName, value);
    				map.put(value, dataMap);
    			}
    			else {
    				final Map<String,String> dataMap=map.get(data[countryIndex]);
    				if ( dataMap!=null ) {
    					dataMap.put(countryName, value);
    				}
    			}
    		}
    	}
     
    }

  8. #68
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux exécuter ce petit programme en remplaçant "fichier1", "fichier2" et "fichier3" par les noms de tes fichiers :

    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
    public class Test {
     
    	public static void main(String[] args) {
    		try {
    			System.out.println(Charset.defaultCharset());
    			showEncoding("fichier1");
    			showEncoding("fichier2");
    			showEncoding("fichier3");
    		}
    		catch(IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public static void showEncoding(String nomFichier) throws FileNotFoundException, IOException {
     
    		try(FileReader reader = new FileReader(nomFichier)) {
    			System.out.println(nomFichier+" "+reader.getEncoding());
    		}
     
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #69
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Le resultat est :
    UTF-8
    country_codes_iso.csv UTF8
    POP.csv UTF8
    rawdata_2147.txt UTF8

  10. #70
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ok, donc le charset par défaut est UTF-8 mais ton fichier n'est pas en UTF-8. Si tu n'as pas eu l'erreur avant, c'est que ton code précédent n'arrivait même pas à la ligne "incompatible", celle où ça plante.

    Il te faut connaître l'encodage de tes fichiers, ou les convertir en UTF-8.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #71
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Ok, donc le charset par défaut est UTF-8 mais ton fichier n'est pas en UTF-8. Si tu n'as pas eu l'erreur avant, c'est que ton code précédent n'arrivait même pas à la ligne "incompatible", celle où ça plante.

    Il te faut connaître l'encodage de tes fichiers, ou les convertir en UTF-8.
    Oulalala ca va assez loin là quand meme lol Comment connaître l'encodage des fichiers ?

  12. #72
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ils viennent d'où ces fichiers ? Il est absolument nécessaire de connaître l'encodage d'un fichier texte pour le lire. Si tu ne connais pas l'encodage et que tu ne sais pas comment le déterminer, il va falloir essayer différents encodages. En tout cas, je ne peux pas le deviner pour toi, surtout sans avoir ces fichiers.

    Essaye par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    try(BufferedReader reader=Files.newBufferedReader(Paths.get(file),StandardCharsets.ISO_8859_1)) {
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #73
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Ils viennent d'où ces fichiers ? Il est absolument nécessaire de connaître l'encodage d'un fichier texte pour le lire. Si tu ne connais pas l'encodage et que tu ne sais pas comment le déterminer, il va falloir essayer différents encodages. En tout cas, je ne peux pas le deviner pour toi, surtout sans avoir ces fichiers.
    D'internet je suppose ? C'est mon prof qui nous les a fourni..



    Essaye par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    try(BufferedReader reader=Files.newBufferedReader(Paths.get(file),StandardCharsets.ISO_8859_1)) {
    Ca m'enlève l'erreur avec ca, mais du coup ca me met ceci :
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at world.WorldList.collect(WorldList.java:39)
    at world.WorldList.countries(WorldList.java:60)
    at world.WorldList.searchByCountryName(WorldList.java:73)
    at world.WorldTest.testOperations(WorldTest.java:35)
    at world.WorldTest.testWorldArrayList(WorldTest.java:23)
    at world.WorldTest.main(WorldTest.java:15)

    Ca concerne cette ligne apparemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String value = data[dataIndex];

  14. #74
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sara_hda Voir le message
    C'est mon prof qui nous les a fourni..
    Il aurait pu vous fournir des fichiers UTF-8, ou au moins avoir la décence de vous indiquer l'encodage !

    C'est toujours le même problème (déjà vu plusieurs fois) : tu essayes d'accèder à une valeur dans un tableau à un index qui n'existe pas. Ici, une valeur en position 2 dans un tableau qui a mons de 2 valeurs. Vu qu'on a vu déjà maintes fois ce problème, tu ne devrais plus avoir besoin de demander comment corriger le problème.

    1. il faut déterminer sur quel fichier, il y a le problème (le fichier 1, le 2 ou le 3) ;
    2. ensuite voir si la ligne est une ligne d'entête (comme tu avais déjà dans un autre cas) : si c'est ça, alors tu peux utiliser le paramètre lineToSkip pour indiquer le nombre de lignes d'entêtes à sauter ;
    3. sinon, c'est une ligne de données qui n'a pas la même taille que les autres (pas le même nombre de données que les autres). De deux choses l'une, soit le format est prévu comme ça (et il faut gérer le cas, avec des if ()), soit c'est le découpage qui n'est pas bon (l'expression régulière ne tient pas compte de tous les cas possibles), soit le fichier est pourri (il y a des lignes qui n'ont pas assez de données).


    Tu peux faire comme ça, au moins ça plantera plus sur ce problème et ça signalera les lignes qui n'ont pas assez de données (tu pourras voir s'il y a des lignes qui ne fonctionne pas mais qui devraient fonctionner) :
    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
    public static void collect(String file, int lineToSkip, String splitString, int dataIndex, String countryName, int countryIndex, Map<String, Map<String,String>> map) throws IOException {
     
    	try(BufferedReader reader=Files.newBufferedReader(Paths.get(file),Charset.defaultCharset())) {
    		for(String line = reader.readLine(); line!=null; line=reader.readLine()) {
    			if ( lineToSkip>0 ) { // on saute les lignes au début
    				lineToSkip--;
    				continue;
    			}
    			final String[] data = line.split(splitString);
                            if ( dataIndex>=data.length) {
                                   System.err.println("Ligne ignorée (pas assez de données): " + data.length+"<="+ dataIndex + " " + Arrays.toString(data));
                            }
                            else {
    			    String value = data[dataIndex];
    			    if( countryIndex==-1 ) {
    				final Map<String,String> dataMap=new HashMap<>();
    				dataMap.put(countryName, value);
    				map.put(value, dataMap);
    			   }
    			   else {
                                  if ( countryIndex>=data.length) {
                                      System.err.println("Ligne ignorée (pas assez de données pour le pays): " + data.length+"<="+ countryIndex + " "+ Arrays.toString(data));
                                  }
                                  else {
    				final Map<String,String> dataMap=map.get(data[countryIndex]);
    				if ( dataMap!=null ) {
    					dataMap.put(countryName, value);
    				}
                                  }
    			   }
                           }
    		}
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #75
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Il aurait pu vous fournir des fichiers UTF-8, ou au moins avoir la décence de vous indiquer l'encodage !
    Oui, surtout que l'informatique n'est pas notre matière principale, je trouve ce projet assez compliqué pour des étudiants qui ne sont pas en info de base..

    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
    public static void collect(String file, int lineToSkip, String splitString, int dataIndex, String countryName, int countryIndex, Map<String, Map<String,String>> map) throws IOException {
     
    	try(BufferedReader reader=Files.newBufferedReader(Paths.get(file),Charset.defaultCharset())) {
    		for(String line = reader.readLine(); line!=null; line=reader.readLine()) {
    			if ( lineToSkip>0 ) { // on saute les lignes au début
    				lineToSkip--;
    				continue;
    			}
    			final String[] data = line.split(splitString);
                            if ( dataIndex>=data.length) {
                                   System.err.println("Ligne ignorée (pas assez de données): " + data.length+"<="+ dataIndex + " " + Arrays.toString(data));
                            }
                            else {
    			    String value = data[dataIndex];
    			    if( countryIndex==-1 ) {
    				final Map<String,String> dataMap=new HashMap<>();
    				dataMap.put(countryName, value);
    				map.put(value, dataMap);
    			   }
    			   else {
                                  if ( countryIndex>=data.length) {
                                      System.err.println("Ligne ignorée (pas assez de données pour le pays): " + data.length+"<="+ countryIndex + " "+ Arrays.toString(data));
                                  }
                                  else {
    				final Map<String,String> dataMap=map.get(data[countryIndex]);
    				if ( dataMap!=null ) {
    					dataMap.put(countryName, value);
    				}
                                  }
    			   }
                           }
    		}
    	}
     
    }
    J'ai modifié le try, avec le StandardCharsets.ISO_8859_1 du coup.. mais j'ai l'impression qu'il saute tout le fichier, ce que tu as demandé d'afficher "Ligne ignorée (pas assez de données): 0<=1 []" s'affiche plusieurs fois pour au final me dire que le pays "France" par exemple, n'existe pas

  16. #76
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sara_hda Voir le message
    "Ligne ignorée (pas assez de données): 0<=1 []"
    Ça, ça veut dire qu'il y a des lignes vides dans le fichier. Ça ne facilite pas le traitement, mais à la limite, ce n'est pas une anomalie si gênante que ça. On pourrait éliminer d'office les lignes vides à la lecture.

    Citation Envoyé par Sara_hda Voir le message
    ... me dire que le pays "France" par exemple, n'existe pas
    C'est dans quel fichier ? Le 2 ou le 3. A la limite, ce n'est pas peut-être une anomalie. Peut-être que toutes les données n'existent pas pour tous les pays. Cela dit si l'enoncé en faisait état, ce serait tout de même mieux. La question est de savoir si c'est normal ou pas. Dans toutes les lignes qui s'affichent tu ne vois nulle part le nom "France" ? Si tu ouvres le fichier dans un éditeur de texte et que tu recherches le mot France, est-ce qu'il est présent ou pas ? Serait-il présent avec une casse différente ?
    Ensuite, s'il est normal que toutes les informations n'existent pas pour tous les pays, la question est de savoir comment tu dois le traiter : ignorer ces pays incomplets ou signaler ces pays (et la propriété manquante).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #77
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par joel.drigo Voir le message

    C'est dans quel fichier ? Le 2 ou le 3. A la limite, ce n'est pas peut-être une anomalie. Peut-être que toutes les données n'existent pas pour tous les pays. Cela dit si l'enoncé en faisait état, ce serait tout de même mieux. La question est de savoir si c'est normal ou pas. Dans toutes les lignes qui s'affichent tu ne vois nulle part le nom "France" ? Si tu ouvres le fichier dans un éditeur de texte et que tu recherches le mot France, est-ce qu'il est présent ou pas ? Serait-il présent avec une casse différente ?
    Ensuite, s'il est normal que toutes les informations n'existent pas pour tous les pays, la question est de savoir comment tu dois le traiter : ignorer ces pays incomplets ou signaler ces pays (et la propriété manquante).
    Ah non du tout, il est bien présent dans tous les fichiers, et quoiqu'il advienne si une information est inconnue, la case correspondante dans le fichier n'est pas nulle, il y a tout de même écrit soit "inconnu" soit "0"
    Je viens de réessayer avec un autre pays, et c'est le même résultat

  18. #78
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux me coller tes fichiers en pièces jointes que je jette un coup d'œil ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  19. #79
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 52
    Points : 3
    Points
    3
    Par défaut
    rawdata_2147.txt
    Seul le fichier txt peut s'envoyer, les csv ne fonctionnent pas..

  20. #80
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sara_hda Voir le message
    rawdata_2147.txt
    Seul le fichier txt peut s'envoyer, les csv ne fonctionnent pas..
    ah bon ? pourquoi ? S'ils sont trop gros tu les zippes... si c'est l'extension qui ne passe pas, tu renommes en ajoutant un _.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. [AC-2003] Requête pour remplir une table à partir d'un fichier Excel
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/09/2009, 10h52
  2. remplir une combobox à partir d'un fichier .csv
    Par wolverine1987 dans le forum MFC
    Réponses: 24
    Dernier message: 28/04/2009, 11h00
  3. Tracer une courbe à partir d'un fichier .csv
    Par dzonaser dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/10/2008, 14h48
  4. Réponses: 0
    Dernier message: 07/02/2008, 16h09
  5. Remplir une liste à partir d'un fichier texte
    Par leroidje dans le forum Langage
    Réponses: 1
    Dernier message: 01/07/2007, 08h41

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