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

Java Discussion :

Acceder directement à une ligne dans un fichier


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut Acceder directement à une ligne dans un fichier
    Bonjour à tous et à toutes :-)

    J'ai un fichier texte dont la structure est la suivante :

    Numéro du compte : C04829
    Nom : Hassen
    Prénom : Khaled
    Solde : 9240315,7628
    Découvert : 40.000
    et je veux accéder "directement" à la ligne numéro 4 pour modifier la solde.
    J'ai essayé avec la classe RandomAccessFile comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RandomAccessFile ra = new RandomAccessFile(new File(chemin), "rw");
    ra.seek(4);
    System.out.println(ra.readDouble());
    mais ça marche pas :/

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 636
    Points
    21 636
    Par défaut
    Ça marche pas parce que seek() compte en octets, pas en lignes.

    On ne peut pas "aller directement" à une ligne d'un fichier texte avec la bibliothèque de base.
    Le plus simple serait de lire le fichier entièrement et de le stocker dans une List<String>.
    Ensuite, faire get(3) sur cette liste.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    Donc si je veux capter la valeur de "Solde" je suis obligé d'utiliser StringToKenizer après la récupération de la ligne 4 ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 636
    Points
    21 636
    Par défaut
    Pas compris ce que tu veux dire.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    L'objectif de ma question est de modifier "seulement" la valeur de Solde qui se trouve dans la quatrième ligne.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 636
    Points
    21 636
    Par défaut
    Hum. Au début il n'était pas question de modifier.

    Ce qu'il faut faire, c'est lire le fichier en entier, dans une List<String> par exemple, puis modifier la ligne qui t'intéresse dans cette List<String>, puis réécrire entièrement cette liste dans le fichier.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    Ok merci, c'est clair.

  8. #8
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    quelqu'un a déjà essayé ici des javolution structs avec des Random Access files? (ou queque chose d'équivalent)
    intéressé par l'expérience

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

Discussions similaires

  1. [FSO] Effacer une ligne dans un fichier
    Par Johnbob dans le forum ASP
    Réponses: 4
    Dernier message: 30/05/2007, 16h23
  2. Changer une ligne dans un fichier
    Par peuf23 dans le forum Langage
    Réponses: 9
    Dernier message: 03/08/2005, 16h43
  3. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  4. [langage] Effacer une ligne dans un fichier
    Par sebi77 dans le forum Langage
    Réponses: 2
    Dernier message: 01/01/2005, 12h43
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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