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 :

Caractère "début fichier" texte (Windows)


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut Caractère "début fichier" texte (Windows)
    Bonjour à tous !

    J'ai un fichier texte généré par une appli JAVA en UTF-8. Ce fichier texte transite via mail ou clé USB vers des utilisateurs (avec peu de moyen de contrôle sur ce que les gens "font" de ce fichier).

    Dans une autre appli, je tente de lire ce fichier texte (pour importation de données). Or il arrive que ce fichier contienne un caractère "parasite" en début de fichier (avant la première lettre). Quand je lis ce fichier, JAVA récupère donc ce caractère (indiquant un point d'interrogation), et ça ma pose problème puisque le texte ne correspond plus à ce que j'attend.

    J'aimerais donc savoir s'il y a un moyen d'exclure ce caractère, éventuellement en récupérant son code ASCII (ou autre ?), pour faire en quelque sorte un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (monTexte.startWith(ceCaractère))
      monTexte = monTexte.substring(...);

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    ce caractère que tu as est probablement des octets de signature UTF8 !
    As tu ouvert ton fichier avec le bon encodage ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    En effet, j'ai lu en cherchant que ce caractère serait dû à l'UTF-8. Mais la création et la lecture de ces fichiers sont bien définis dans cet encodage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileOutputStream ot = new FileOutputStream(this.fichier);
    this.out = new BufferedWriter(new OutputStreamWriter(ot,"UTF-8"));
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InputStreamReader reader = new InputStreamReader(new FileInputStream(this.leFichier),"UTF-8");
    this.input = new BufferedReader(reader);
    En cherchant un peu dans la classe Character, j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( Character.isIdentifierIgnorable(uneLigne.charAt(0)) ) {
      uneLigne = uneLigne.substring(1);
    }
    ce qui a l'air de fonctionner, mais je préfèrerais une confirmation que je ne fasse pas n'importe quoi

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Oui ça devrait marcher je pense !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    Dans les premiers tests, ça marche. Mais je ne sais pas s'il y aura des effets de bord (autres caractères bizarres, souhaités ou non).
    Dans mon cas, mon fichier ne contient que des lettres/chiffres, donc je met résolu.

    Merci pour ton aide !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2010, 01h01
  2. Réponses: 6
    Dernier message: 08/08/2006, 09h14
  3. Réponses: 3
    Dernier message: 27/06/2005, 16h24
  4. Réponses: 5
    Dernier message: 25/01/2005, 14h26

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