BufferedWriter ne produit pas entièrement les données
En Java, la classe BufferedWriter est couramment utilisée pour écrire du texte sur le disque. Bien qu'il utilise des techniques de mise en mémoire tampon pour améliorer les performances, il existe des cas où il peut ne pas parvenir à écrire toutes les données prévues dans le fichier de sortie.
Un tel cas se produit lorsque le tampon BufferedWriter dépasse sa taille par défaut. Par défaut, la taille du tampon est définie sur 8 192 caractères, ce qui peut facilement contenir des centaines de lignes de données. Cependant, si la quantité de données dépasse la capacité du tampon, les données ne seront pas écrites dans le fichier tant que le tampon n'aura pas été explicitement vidé.
Description du problème
Le Le programme décrit dans la question lit les données d'un fichier CSV et les convertit en commandes SQL pour les insérer dans une table. Le programme semble fonctionner correctement jusqu'à ce qu'il arrête brusquement d'écrire dans le fichier de sortie à mi-chemin du processus de conversion.
Solution
Pour remédier à ce problème, il est crucial de fermer le OutputStream associé au BufferedWriter. Cette action force le vidage des données restantes, garantissant ainsi leur écriture dans le fichier de sortie. La ligne de code suivante doit être ajoutée avant la fin du programme :
out.close();
En fermant OutputStream, les données mises en mémoire tampon sont immédiatement écrites dans le fichier, résolvant le problème de sortie tronquée.
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!