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

Fermé
Babybel - 3 févr. 2012 à 11:15
 Babybel - 3 févr. 2012 à 13:47
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
		    }	           				    
	      }


A voir également:

3 réponses

Après output.flush(); il faut mettre output.close(); sinon le descripteur reste ouvert.
2
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
Modifié par arth le 3/02/2012 à 12:09
En effet ;-)

Egalement fw.close();
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
3 févr. 2012 à 12:21
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)
0
Merci, mais ça ne change rien du tout ^^'
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
Modifié par arth le 3/02/2012 à 11:26
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.
0
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
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
3 févr. 2012 à 12:42
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();
}
0
Merci je regarderai ca.
0