[Java] Ecriture incomplete d'un fichier...

Bonjour,

J'essaye de copier une certaine quantité de texte dans des fichiers que je génère,
mais le problème est que l'écriture est à chaque fois incomplète :

- un system.out.println(texte) copie le texte en entier
- j'ai essayé filewriter, printwriter, bufferedwriter...
- la taille des fichiers est différente (de 20ko à 1500ko)
- la "coupe" des fichiers semble aléatoire (pas de caractère spécial)

Si quelqu'un a une solution...

Mon dernier essai en date :


FileWriter fw = null;
	     try
	     {
	           fw = new FileWriter(patentName, false);
	           BufferedWriter output =new BufferedWriter(fw);
	           output.write(patentHTML.toString());
	           output.flush();
	     }
	     catch(IOException ioe){
	           System.out.print("Erreur : ");
	           ioe.printStackTrace();
	     }
	     finally{
	          try{
		        fw.close();
		  }catch(IOException e){
			//do something clever with the exception
		    }	           				    
	      }


3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Après output.flush(); il faut mettre output.close(); sinon le descripteur reste ouvert.
    1. Contributeur
      En effet ;-)

      Egalement fw.close();
    2. Modérateur
      D'ailleurs le flush te fera plus perdre du temps qu'autre chose puisque le close assure que toutes les données sont écrites (on se sert plutôt du flush sur des Sockets ou autres flux que l'on ne ferme pas)
    3. Merci, mais ça ne change rien du tout ^^'
  2. Contributeur
    Et si tu affiches patentHTML ça donne quoi?

    Y a-t-il une erreur?

    Au fait c'est quoi comme type patentHTML?


    Le loup, solitaire et mystérieux.
    1. ah oui au temps pour moi, patentHTML est un String : il contient un code source entier en HTML.
      Si je fais System.out.println(patentHTML) ça revient au même que si je fais system.out.println(patentHTML.toString())
      Je sais plus pourquoi j'avais essayé ça

      Et donc ça affiche le code source en entier dans la console jusque la balise </HTML>
      alors que le "write" s'arrete en plein milieu d'une phrase par moment
  3. Modérateur
    Essaye avec un code un peu plus "light"

    try
    {
        FileOutputStream out = new FileOutputStream(patentName);
        out.write(patentHTML.toString().getBytes());
        out.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    1. Merci je regarderai ca.

Discussions similaires

question pix mot caché

7 réponses