Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1471 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Ecrire une string au début d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecrire une string au début d'un fichier

n°2213697
dup-carray
Posté le 16-12-2013 à 05:21:08  profilanswer
 

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,

mood
Publicité
Posté le 16-12-2013 à 05:21:08  profilanswer
 

n°2213722
willy le k​id
Posté le 16-12-2013 à 11:42:54  profilanswer
 

Pas sûr que ton utilisation hors sentiers battus de l'écriture de fichiers soit rapide ... j'en resterai aux méthodes plus académiques.
Elles sont connues et faciles à implémenter.
Je stockerai tout dans une liste pour ensuite la parcourir en ordre inverse. Je ne sais pas si le Collections.reverse ou le ListIterator.hasPrevious est meilleur.
A moins d'avoir des millions de lignes, la performance devrait être acceptable.


Message édité par willy le kid le 16-12-2013 à 11:43:33
n°2213795
dup-carray
Posté le 17-12-2013 à 05:47:26  profilanswer
 

Je viens d'implémenter ça en passant par une LinkedList en intermédiaire, et pas de souci de performance en effet.
Merci pour te réponse !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Ecrire une string au début d'un fichier

 

Sujets relatifs
[DELPHI] initialiser un string dans sa déclaration...Problème Création fichier texte via vbs
[VBA-Excel] Comment appeler un fichier pour récupérer des données ?[PowerShell] Compte le nombre de ligne d'un fichier
copier le contenue d'un fichier dans un tableau[HTML/JS] Créer et télécharger un fichier CSV avec ie
recherche un moyen d'integrer du css a un fichier jsecrire dans un fichier excel
[C]Détection de fin de fichier... 
Plus de sujets relatifs à : Ecrire une string au début d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR