Lire un fichier sous java

gigabit32 Messages postés 5 Statut Membre -  
gigabit32 Messages postés 5 Statut Membre -
Bonjour,

J'ai le code suivants écrit en Java:(le code permet de lire la première ligne depuis le fichier test.txt)

je veux que ce programme à la prochaine exécution lit la deuxième ligne .

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class test {

public static void main(String[] args) throws IOException{

FileReader monfichier = null;
BufferedReader tampon = null;

monfichier = new FileReader("C:\\test.txt");
tampon = new BufferedReader(monfichier);

String ligne = tampon.readLine();
System.out.println(ligne);

}
}

Merci d'avance de votre aide.

1 réponse

  1. Yoan Messages postés 11905 Statut Modérateur 2 356
     
    Visiblement ça ça lit bien plus qu'une seule ligne. En fait ça n'arrête jamais de lire des lignes. Même quand il n'y a plus rien à lire. Donc j'imagine que ça se termine sur une belle IOException.
    1
    1. gigabit32 Messages postés 5 Statut Membre
       
      En fait j'ai rectifier le code, donc le programme lit la première ligne et l'affiche,mais je veux qu'il à la prochaine execution la deuxième ligne.Donc je me demande s'il y a une astuce à faire pour faire celà.
      0
    2. Yoan Messages postés 11905 Statut Modérateur 2 356
       
      En passant le numéro de ligne comme argument, ça marche.
      Sinon je ne vois pas.

      Je pense que les pointeurs de fichiers sont réinitialisés à chaque construction d'un FileReader. Il y a peut-être moyen d'éviter ça explicitement mais je doute que ce soit une bonne solution. Si ça se trouve entre deux exécutions un autre programme a modifié le pointeur du fichier. Ce n'est pas très propre.
      0
    3. gigabit32 Messages postés 5 Statut Membre
       
      Non je croix pas que la méthode readLigne() accepte comme argument un entier.
      0
    4. Yoan Messages postés 11905 Statut Modérateur 2 356
       
      Un argument à ton programme, pas à la fonction :)

      Ton programme récupères le numéro de ligne à lire, par exemple pour lire la ligne n°5 :
      $ ./monProgramme 5

      Il fait ensuite une boucle pour faire 5 readLine() et il ne garde que la dernière.
      0
    5. gigabit32 Messages postés 5 Statut Membre
       
      Ok Merci Mr Yoan je vais chercher dans ce sens .
      0