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