[JAVA] (Lire Attendre Lire) une ligne

Résolu
Bonjour,

Je lis un fichier tant qu'il y a des lignes, mais j'aimerais attendre qu'une ligne s'écrive si je suis à la fin du fichier, pour continuer la lecture.

J'ai testé cela :

String path="chemin";

//Dans un try - catch
File fichier = new File(path);
BufferedRead reader=new BufferedReader(new( FileReader(fichier));

while(true)
{
while( (line = reader.readLine())!=null )
{
Traitement;
}

while(!reader.ready())
//ou bien while(reader.readLine()==null)
{
reader.wait(0);
}

}

Mais j'ai l'exception : IllegalMonitorStateException, apparemment mon thread (ici flux) n'est plus propriétaire de l'objet au 2ime tour de la boucle. En effet il attend 1 fois, mais la deuxième j'ai l'exception.

Pourriez vous m'aider ?

Merci.

PS : Sur Eclipse, version java : 1.5.0_22

--
Usus magister est optimus 
Configuration: Windows XP

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Petite modification, en fait le wait ne marche jamais, que cela soit au premier ou au deuxième tour.
    Merci
    1. En fait c'est normal il faut plutôt faire comme cela :

      while(!reader.ready())
      {
      Thread.sleep(7000);
      }