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 :

Lire 1 même fichier, plusieurs méthodes


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Sécurité
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Par défaut Lire 1 même fichier, plusieurs méthodes
    Bonjour à tous,


    Je suis face à un "petit" problème. Petit car je ne pense pas que se soit grand chose... mais malheureusement je suis quand même bloqué !


    Alors voilà, dans mon main je demande le nom d'un fichier à ouvrir comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Scanner sc = new Scanner(System.in);
    System.out.println("Nom du fichier:");
    String entryFic = sc.next();
    File fic = new File(entryFic);
    sc.close();
    .
    .
    methExemple(fic);
    .
    .
    methExemple(fic);

    Pour l'instant voilà comment je lis le fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void methExemple(File fic) {
         Scanner sc = new Scanner(fic);
         int unEntier = sc.nextInt();
         System.out.println("Entier lu: " + unEntier);
         .
         .
         .
         sc.close();
    }
    Sauf qu'avec cette méthode je relis à chaque fois le fichier de 0. Or je ne veux pas relire le fichier depuis 0 à chaque appel. Je souhaite reprendre la lecture de celui-ci à partir de là ou je m'étais arrêté la fois précédente.

    Sauriez-vous comment faire pour répondre à mon cahier des charges ?


    Je vous remercie pour votre aide et espère que vous saurez me sortir de cette impasse.


    Cordialement,

    Graimbault


    PS: Je tiens à m'excuser, je me suis dans un premier temps trompé de topic en le postant ici: IDE - Eclipse

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Plop,

    Il faut que tu utilises un RandomAccessFile. Cette méthode possède la méthode seek qui te permet de modifier l'offset auquel tu veux lire. Tu peux donc te placer au dernier endroit lu / écrit, en pensant à conserver l'offset à chaque fois.

    N'oublie pas qu'à chaque ouverture de fichier, l'offset est mis à 0, donc tu es obligé de lire le début (sauf si tu spécifies que tu veux lire depuis la fin).

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    ... Ou alors, peut-être qu'il faut simplement éviter de créer un nouveau Scanner à chaque appel.

    Juste créer un seul Scanner qui servira à lire la totalité du fichier, le garder dans un coin, et se servir de ce Scanner, pas en créer un autre, à chaque appel.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Homme Profil pro
    Sécurité
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Par défaut
    Merci à vous deux pour vos réponses.

    J'ai finalement utilisé la solution de olivier.pitton en utilisant des RandomAccessFile.

    Bien que j'ai rencontré quelques problèmes au niveau de la lecture d'entier. Par exemple dans un fichier il était écrit 1234 et lui m'affichait 49 !

    Mais après une petite opération de lecture/ré-écriture pas bien compliqué tout se passe maintenant très bien! Mon programme termine et m'affiche les bonnes valeurs!

    Encore merci et j'espère pouvoir vous aider à mon tour un de ces 4 !


    Cordialement,

    Graimbault

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

Discussions similaires

  1. Plusieurs vues sur un même fichier
    Par minicat dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/05/2014, 21h53
  2. [XL-2003] Lire le même fichier
    Par peofofo dans le forum Excel
    Réponses: 0
    Dernier message: 24/03/2011, 05h45
  3. Réponses: 8
    Dernier message: 05/12/2005, 14h43
  4. utiliser le même fichier dans plusieurs projets vc++6
    Par yannick_sch dans le forum MFC
    Réponses: 5
    Dernier message: 12/02/2004, 17h39

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