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

Langage Java Discussion :

Résultat tronqué d'une écriture dans un fichier.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Par défaut Résultat tronqué d'une écriture dans un fichier.
    Bonjour,

    J'écris le contenu d'un StringBuffer dans un fichier texte au moyen de la méthode OutputStreamWriter.write(String str).

    L'écriture se déroule sans anicroche, mais je constate que le fichier créé est incomplet, comprenez qu'une partie du contenu du StringBuffer n'a pas été écrite. Je pense qu'il s'agit d'une erreur de longueur de chaîne qui doit dépasser la longueur maximale acceptée par le buffer de la méthode write().

    J'ai donc essayé de diviser la chaîne à écrire en fragements en utilisant la méthode OutputStreamWriter.write(String str, int off, int len). Cette variante n'écrit qu'une partie de la chaîne. Si j'ai bien compris la doc, il s'agit d'indiquer le décalage (nombre de caractères à sauter depuis le début de la chaîne) et la longueur (nombre de caractères à extraire). Malheureusement, en utilisant cette méthode avec les arguments suivants : write(monBuffer, 0, 1000) j'obtiens un fichier complètement vide. Je m'attendais à avoir les 1000 premiers caractères écrits dans le fichier.

    Voici un lien vers la doc que j'ai utilisée : http://java.sun.com/javase/7/docs/ap...,%20int,%20int

    Et maintenant mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    File rapportDonneesTelecodage = new File("C:\\xxx\\rapportDonneesTelecodage.doc");
    		FileOutputStream rapportOutputStream = new FileOutputStream(rapportDonneesTelecodage);
    		OutputStreamWriter rapportOutputStreamWriter = new OutputStreamWriter(rapportOutputStream,"ISO-8859-1");
    		rapportOutputStreamWriter.write(rapportComparatif.toString());

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Au hasard, il manque un flush() (bien que ca semble pas buffered) et/ou un close() ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Par défaut
    C'est bon j'ai réussi !
    J'ai essayé en ajoutant un flush() et un close() et j'obtiens le résultat escompté. J'ai essayé avec seulement le close() est le résultat est identique, je suppose donc que le flush() est superflu.

    Problème résolu, merci wax78.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Plus exactement, close() commence par appeler flush(), il est donc inutile de le faire soi-même avant un close().

    Mais flush() a ses utilités pour des fichiers en cours d'écriture qu'on ne compte pas encore fermer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. renvoi du résultat d'une requête dans un fichier
    Par vrossi59 dans le forum Oracle
    Réponses: 3
    Dernier message: 13/02/2006, 17h28
  2. Ecrire le résultat d'une query dans un fichier txt
    Par jbaers dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/11/2005, 01h49
  3. Enregistrer le résultat d'une requête dans un fichier Excel
    Par Isa31 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 14h31
  4. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04
  5. [JSP] Recopier le résultat d'une JSP dans un fichier
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 29/09/2003, 15h10

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