Bonjour à tous,
Je traite des données en Java, où je lis des fichiers où chaque ligne est une structure en JSON dont j’extrais quelques infos que je réécris en texte brut, toujours ligne par ligne). Le problème est que les infos en entrée sont du moins récent au plus récent, et que je souhaite inverser l'ordre en sortie. J'ai beaucoup de données à traiter donc je souhaite un process le plus optimisé possible.
Mon objectif serait donc de faire en sorte d'écrire la string sortante du parser au début du fichier de sortie et non à la fin.
Mon programme est une boucle sur chaque ligne d'entrée, la ligne est traitée par une fonction parser, et le résultat est une string à écrire dans le fichier.
J'ai cherché plusieurs techniques. J'ai notamment utilisé des RandomAccessFile qui permettent de se placer au début du fichiers avec un .seek(), mais l'ordre réel d'écriture est toujours le dernier écrit à la fin. Pire encore, vu que cela n'a pas l'air bufferisé j'ai des petits problèmes dans les données des fois (que je n'avais pas quand j'utilisais BufferedOutput, mais sans pouvoir changer l'ordre).
Avez-vous une idée, ou vais-je devoir passer par une liste à retourner et écrire élément par élément ? Compte tenu du volume à traiter je souhaite optimiser au maximum l'algorithme.
Merci d'avance,