IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Ecrire à la fin d'une ligne *antérieure* à la fin d'un fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut Ecrire à la fin d'une ligne *antérieure* à la fin d'un fichier
    Bonjour à tous,

    Nouveau sur le forum Développez, je me lance...

    Je développe une application réseau en java sous Eclipse et j'ai besoin de stocker des valeurs dans un fichier temporaire. J'ai 5 valeurs prise par mon programme toutes les 500ms et je les écrit sur la même ligne séparé par des virgules à l'aide de la méthode println de la classe PrintWriter (une nouvelle ligne à chaque itération, soit 500ms). Jusque là pas de problème, je peux ensuite accéder à ses valeurs par la classe BufferedReader.

    Le hic c'est que la 5ième valeur n'est pas synchrone avec les autres et arrive 5 secondes plus tard. Pour que le scmilblick ait un sens, je voudrais donc ajouter cette valeur à la fin de la ligne n-10 au dessus de la fin du fichier afin que la lecture du fichier soit, elle, synchrone et sensé. Les effets de bords seront gérer par la suite.

    J'ai eu beau chercher ici et ailleurs mais pas moyen de trouver comment accéder à une ligne antérieur, AVANT la fin du fichier et d'y ajouter du texte A LA FIN DE LA LIGNE...

    Je ne suis pas spécialement à l'aise avec les Stream I/O mais je sens qu'il va bien falloir que je m'y mette...

    Merci de votre aide,
    Ciao
    Sam

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    bein tu peux stocker tes premiere ligne dans un StringBuilder en attendant ton dernier element et apres tu ecris sur ton fichier.
    Bon c est pas tres clean mais c est un peu logic.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    Citation Envoyé par jhaythem
    bein tu peux stocker tes premiere ligne dans un StringBuilder en attendant ton dernier element et apres tu ecris sur ton fichier.
    Bon c est pas tres clean mais c est un peu logic.
    Je viens d'y penser
    Un tableau en somme...

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    Ok mais le problème est que ce "tableau" va grossir beaucoup trop avec le temps... y auriat-il moyen d' "enlever" la première "ligne" du StringBuilder à chaque itération, de manière à ce que sa taille (et son occupation mémoire) reste constante et que celui-ci "scanne" les n lignes au dessus du point de lecture...

    en espérant me faire comprendre... merci

  5. #5
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    RandomAccessFile (ou AccessRandomFile ) ca marche pas ?

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    Avec RandomAccessFile il y a sans doute moyen d'écrire après la fin de ligne, oui, mais ça va écraser la fin.
    Donc il faut lire le fichier une première fois pour mémoriser la fin du fichier, c'est le plus simple.

    une autre solution pourrait être d'agrandir le fichier de la taille dont on a besoin, de réécrire le fichier depuis la fin pour déplacer toutes les données et enfin d'écrire ce qu'on insère avec quasi zéro occupation mémoire. (comme une défragmentation, mais dans un fichier)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBS]Ecrire à la fin d'une ligne
    Par Mammy Potter dans le forum VBScript
    Réponses: 5
    Dernier message: 14/01/2013, 13h56
  2. script shell ecrire à la fin d'une ligne d'un fichier
    Par patricx dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/02/2012, 23h11
  3. Ecrire a la fin d'une ligne d'un fichier .txt
    Par Vince_14 dans le forum LabVIEW
    Réponses: 5
    Dernier message: 02/05/2011, 19h45
  4. Comment détecter la fin d'une ligne en C ?
    Par radouane_as dans le forum Débuter
    Réponses: 10
    Dernier message: 08/06/2007, 18h13
  5. ecrire a la fin d'une ligne d'un fichier
    Par warubi dans le forum C++
    Réponses: 6
    Dernier message: 08/02/2007, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo