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 :

BufferedReader : readLine construit une String avec des octets indésirables


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Points : 10
    Points
    10
    Par défaut BufferedReader : readLine construit une String avec des octets indésirables
    Bonjour,

    J'essaie de lire un fichier CSV. Rien de compliqué en soi. Je l'ai codé des dizaines de fois. Sauf que là, je vérifie la structure de la ligne avec une expression régulière. Mais cela ne marche pas....Mon expression régulière n'étant pas le problème, j'ai examiné avec le debugger le contenu exacte de la ligne lue pour voir ce qu'elle contient. Patatras ! Elle contient les caractères attendus certes...mais entourés de plein de cochonneries....Normal que cela ne matche pas ! J'ai comparé deux String, l'une lue dans un fichier, l'autre initialisée en dur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		String line = br.readLine(); // contient A;A;...
    			String line2 = "A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A";
    Le debugger montre ça pour la variable line :

    Nom : Capture d’écran 2022-10-20 à 17.48.51.png
Affichages : 174
Taille : 174,3 Ko

    Et pour la variable line2 :

    Nom : Capture d’écran 2022-10-20 à 17.50.12.png
Affichages : 176
Taille : 154,7 Ko

    Est-ce que vous avez une explication et un solution ?

    Merci d'avance
    N

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Compte tenu de ce qu'affiche le debugger, il semble que le fichier lu soit encodé en UTF-16 Little Endian.
    Je pense que le problème vient du code de lecture du fichier qui ne précise pas l'encodage du fichier source.
    Peut-on voir le code de lecture ?
    Il faudrait qu'il ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-16LE"));

  3. #3
    Membre à l'essai
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Je me doutais que le problème était vraisemblablement lié à l'encodage. En précisant à l'ouverture l'encodage du fichier (comme tu le suggère), et en le faisant correspondre à l'encodage du fichier (ce que je ne regarde jamais car ça marche tout seul d'habitude...), le problème est résolu ! Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/11/2014, 22h55
  2. RegEx pour lire une string avec des lignes
    Par Bacube dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/05/2012, 16h20
  3. Réponses: 2
    Dernier message: 25/05/2011, 17h07
  4. [WPF] remplir une grid avec des strings
    Par Seals dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 21/03/2011, 10h37
  5. Réponses: 2
    Dernier message: 09/03/2006, 14h15

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