Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
819 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  InputStreamReader et lecture de fichiers ligne par ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

InputStreamReader et lecture de fichiers ligne par ligne

n°1265904
xbxxbx
Posté le 13-12-2005 à 21:04:26  profilanswer
 

Je souhaiterais lire un fichier texte tout balot (mais contenant des caractères accentués) ligne par ligne (séparateur = line feed + carriage return). Jusque là, tout va bien. Mes souvenirs du Basic qui torchait cela en une instruction m'ont plongé dans une confiance pour le moins trompeuse.
 
Je lis quelques docs java sur le sujet. Elle me disent, grosso-modo : "Mec, c'est de la luge ! Le Basic : enfoncé, tu vas voir ! Utilise un objet de la classe InputStreamReader puis mets lui une baffe avec un objet LineNumberReader. Trop simple !!!"
 
Je m'exécute :
      InputStreamReader flog = new InputStreamReader(new FileInputStream(NomLog),"IBM437" );
      LineNumberReader llog = new LineNumberReader(flog);
et plus loin dans le code :
      while ((ligne = llog.readLine()) != null) {
 
N'obtenant pas les résultats escomptés, je fais un System.out.println(ligne) : HORREUR : entre tous les caractères sont intercalés des espaces. Sans parler des caractères accentués totalement hiéroglyphiques.
 
Je cherche pourquoi et me rends compte qu'il existe la notion de Charset qui encode des données.
 
MAIS JE M'EN TAPE DE CETTE C.... JE VEUX QUE MES LIGNES, MES CARACTERES SOIENT LUS TELS QU'IL SONT DANS CE P&#%@ DE FICHIER.
 
C'est pourtant pas compliqué ! Je trouve, après 2 heures de recherches que UFT-16 supprime les espaces (ouf !), mais j'ai toujours du hiéroglyphes.
 
Ma question est : Y a pas plus simple ?
Ma 2ème question est : Sinon (je reste pessimiste), comment qu'on fait ?
 
Merci d'avance !!!!

mood
Publicité
Posté le 13-12-2005 à 21:04:26  profilanswer
 

n°1265978
souk
Tourist
Posté le 13-12-2005 à 22:23:47  profilanswer
 
n°1265982
gocho
Posté le 13-12-2005 à 22:34:00  profilanswer
 

souk a écrit :

"IBM437" ? [:pingouino]


 
pas mieux [:pingouino] c'est quoi ce machin ?  
 
edit2 : a ben c'est la charset...jamais utilise ca moi...
 
Sinon perso j'utilise

Code :
  1. FileInputStream nomLogique=new FileInputStream (nomFichier);
  2. InputStreamReader ligne = new InputStreamReader (nomLogique);
  3. BufferedReader bufferLigne = new BufferedReader (ligne);


et ca marche ca met pas d'espaces ni rien...par contre je viens de verifier et ca m'affiche pas les é, è etc...
Dommage ca...[:klem3i1]
Vais me penchationner sur la question...


Message édité par gocho le 13-12-2005 à 22:48:58
n°1266231
xbxxbx
Posté le 14-12-2005 à 12:05:13  profilanswer
 

Merci pour ta proposition. je vais vérifier...
 
Pour les hiéroglyphes, je me demande si la fenêtre "System" n'aurait pas un jeu de caractères différent, genre ASCII alors que Windows, donc le programme java, travaillerait en ANSI.
 
Quel cirque !! Pour lever l'ambiguité, je vais afficher dans une zone de texte au lieu de la fenêtre system...
 
Je vous tient au courant !
 
PS : IBM437 : espaces intercalés, IBM850 aussi... :-(

n°1268104
the real m​oins moins
Posté le 16-12-2005 à 05:34:37  profilanswer
 

(oui, c'est la console qui merdoie, faut apprendre à utiliser un debugger, plutot)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1274585
xbxxbx
Posté le 29-12-2005 à 18:36:38  profilanswer
 

Je confirme : Dans des zones de texte, il n'y plus de caractères bizzaroïdes. Mais lors du traitement des lignes lues, tout ce qui n'est pas lettres et chiffres est totalement altéré... J'ai fait une petite boucle qui remet les bons caractères.
 
Avec ce bazar que j'ajoute, tout marche bien maintenant.
 
No problemo, le debugger. Il suffirait juste que j'installe un super IDE genre Eclipse...
 
 
 
Merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  InputStreamReader et lecture de fichiers ligne par ligne

 

Sujets relatifs
transfert automatique de fichiers vers un site web[VB6] Utilisation de fichiers batch...
problème spam via formulaire en ligneProblème de lecture .wmv dans le code HTML
[ACCESS] plusieurs ligne d'update dans une requeteEchange de valeurs entre deux fichiers texte..
[Asp.Net] [Stage] Partage de fichiersLecture d'un fichier texte en boucle C++
JTable obtenir le contenu du ligne selectionnégestion de téléchargement de fichiers
Plus de sujets relatifs à : InputStreamReader et lecture de fichiers ligne par ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR