Voici l'extrait de code.
while((lines = br.readLine())!=null){
st = new StringTokenizer(lines);
bw = new BufferedWriter(new FileWriter("files/file.txt"));
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
bw.write(st.nextToken());
}
bw.close();
}
br.close();
3 Réponses :
Quelques choses: p>
Mieux, rincer le décorateur dans le cas heureux. Fermez la ressource sous-jacente dans enfin code>. (OBFILEWRITECOMMENT: FileWriter CODE> Remets Le codage du personnage qui se trouve être la "défaut" à l'époque. Bien mieux pour choisir explicitement un codage, ce qui signifie shunning filewriter code> (Utiliser < Code> OutputStreamwriter code>).)
La fermeture fournit une affleurement implicite, la plupart des clôtures de code simples sont enfin suffisantes.
Votre boucle interne devrait être quelque chose comme ceci: p>
Le code n'est pas complet, par exemple, je n'ai pas déclaré que le Tokenizer semble causer l'exception. C'est juste un échantillon pour vous guider :)
bw.close () est très important. Merci de suggestion.
BW.FLOSE () CODE> ne sera pas appelé en cas de ioException code> dans le code de code que vous avez fourni. S'il vous plaît, envisagez d'utiliser try-with-ressources code> construire dans votre réponse.
Idéalement, vous devez utiliser le constructeur suivant pour créer second paramètre, et votre lecteur pourra lire des données correctes. P> P> FileWriter code>, true code> est destiné à ajouter les nouvelles données. FileWriter code> ne tronque pas votre écriture précédente. p>
Y a-t-il un message d'erreur? Un fichier est-il créé? Appelez-vous proche ()?
Pourquoi instanciez-vous un nouveau bufferedWriter pour chaque écriture que vous faites? En outre, vous devez toujours fermer tous les flux ouverts (après le travail terminé, OFC :-)).
Après votre dernier édition, vous créez toujours la bufferedwitter à l'intérieur de la boucle. Cela tronquera votre dossier