[JAVA] (Lire Attendre Lire) une ligne

Résolu/Fermé
TheUltimateCaveMan Messages postés 42 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 18 janvier 2014 - 30 nov. 2009 à 17:16
TheUltimateCaveMan Messages postés 42 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 18 janvier 2014 - 1 déc. 2009 à 20:07
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
A voir également:

2 réponses

TheUltimateCaveMan Messages postés 42 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 18 janvier 2014 1
1 déc. 2009 à 18:40
Petite modification, en fait le wait ne marche jamais, que cela soit au premier ou au deuxième tour.
Merci
0
TheUltimateCaveMan Messages postés 42 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 18 janvier 2014 1
1 déc. 2009 à 20:07
En fait c'est normal il faut plutôt faire comme cela :

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

0