La façon la plus simple serait pour stocker simplement tout le contenu du fichier en mémoire jusqu'à ce que vous avez terminé, écrivez l'en-tête, puis écrivez le reste du fichier.
Si la mémoire est un problème et que vous ne pouvez pas stocker en toute sécurité le fichier entier en mémoire, ou si vous ne voulez pas, vous pouvez écrire la majeure partie des données CSV dans un fichier temporaire, puis lorsque vous êtes terminé, écrivez l'en-tête dans le fichier principal et copiez les données du fichier temporaire dans le fichier principal dans une boucle. Si vous vouliez vous amuser, après avoir écrit les données CSV principales dans le fichier principal, vous pouvez parcourir le fichier depuis le début, lire en mémoire les données que vous êtes sur le point d'écraser avec l'en-tête, puis écrire l'en-tête au-dessus de ces données, et ainsi de suite, lire chaque morceau dans la mémoire, écraser avec le précédent jusqu'à la fin et ajouter le morceau final. De cette façon, vous "insérez" des données au début, en déplaçant le reste du fichier vers le bas. Je ne le recommanderais vraiment pas car cela ajouterait simplement de la complexité sans beaucoup d'avantages, à moins qu'il y ait une raison spécifique pour laquelle vous ne pouvez pas faire quelque chose de plus simple comme utiliser un fichier temporaire.
ressemble à 2 fichiers est le seul moyen d'ajouter des données d'en-tête dynamiques, merci. –