BufferedWriter n'écrit pas complètement dans le fichier de sortie : comprendre le problème et la solution
En Java, lors de la création d'un BufferedWriter pour écrire des données dans une sortie fichier, il est important de comprendre le mécanisme de mise en mémoire tampon pour garantir une transmission complète des données. Le tampon interne de BufferedWriter stocke les données avant de les transférer dans le flux de sortie sous-jacent. Cela améliore les performances en réduisant le nombre d'opérations d'écriture, mais cela peut également conduire à des données incomplètes si elles ne sont pas fermées correctement.
Dans votre cas, votre programme semble se terminer prématurément lors de l'écriture d'instructions SQL dans un fichier, ce qui entraîne données manquantes. Cela suggère que le tampon de BufferedWriter n'est pas complètement vidé avant la fin du programme.
La solution réside dans la fermeture de BufferedWriter lorsque vous avez fini d'y écrire. Cette action déclenche la méthode flush(), qui vide le tampon et envoie les données restantes au flux de sortie sous-jacent. En ajoutant la ligne :
out.close();
à la fin de votre code, vous vous assurez que toutes les données que vous avez écrites dans BufferedWriter sont effectivement écrites dans le fichier de sortie.
N'oubliez pas, en fermant le BufferedWriter ferme également le FileWriter sous-jacent, qui à son tour ferme le OutputStream. En fermant BufferedWriter, vous garantissez que toutes les données en attente sont vidées et transmises en toute sécurité au fichier. Cela élimine le risque de perte ou de troncature de données pouvant survenir en raison d'un BufferedWriter non fermé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!