2011-12-10 1 views
0

J'ai un problème avec le caractère EOF catch. Mais quand j'obtiens EOF, il renvoie 10 et ferme le flux. J'ai essayé avec prêt, mais ça ne marche pas. :( EDIT Comment puis-je signaler EOF à un programme qui est en train de lire System.in de la console NetBeans ? Je vais essayer avec la console Eclipse cuz d'autres œuvres de lecteurs. EDIT Problème travaux résolus sur EclipseLecteur comment attraper l'eof

+0

Que fait 'read()'? vient-il d'un BufferedReader? –

+0

Veuillez fournir un contexte. Quel est l'objet que vous appelez read()? – merlin2011

+0

Je peux avoir BufferedReader, FileReader, InputStreamReader ou sth else. –

Répondre

0

Prêt() ne vous aidera pas à ce que depuis le flux peut être lu à partir, le caractère suivant se trouve être EOF.

Je ne sais pas ce que vous cherchez à faire, mais si vous voulez éviter le retour du EOF personnage, vous devez ajouter un chèque pour celui-ci

int y = read(); 
if(-1 == y) { 
    // Handle it however you want 
} 
+0

Cela fonctionne avec FileReader mais pas avec InputStreamReader (System.in). Il ne fonctionne pas parce que je reçois y = 10 et flux après c'est fermé. J'utilise CTRL + D pour envoyer des eof. Peut-être que c'est un problème. –