Comment faire pour voir si un Lecteur est à EOF?
Mon code besoin de lire tout d'un fichier. Actuellement, je suis en utilisant le code suivant:
BufferedReader r = new BufferedReader(new FileReader(myFile));
while (r.ready()) {
String s = r.readLine();
//do something with s
}
r.close();
Si le fichier est actuellement vide, cependant, puis s
est null, ce qui n'est pas bon. Est-il Reader
qui a un atEOF()
méthode ou l'équivalent?
OriginalL'auteur Melody Horn | 2010-09-15
Vous devez vous connecter pour publier un commentaire.
Un modèle standard pour ce que vous essayez de faire est:
Encore mieux: le faire-alors qu'à la place de tout en.
La JavaDoc de
BufferedReader.readLine()
dit qu'elle renvoie à "Une Chaîne de caractères contenant le contenu de la ligne... ou null si la fin du flux a été atteint"Qu'arriverait-il si mon fichier contient
null
comme une chaîne de caractères ??? Je suis incapable de lire le fichier, cela peut-être une raison ?et
null
sont deux choses différentes.OriginalL'auteur Synesso
La docs dire:
public int read() throws IOException
Retourne:
Le caractère lu, comme un nombre entier dans la plage de 0 à 65535 (0x00-0xffff), ou -1 si la fin du flux est atteinte.
Ainsi, dans le cas d'un Lecteur, il faut vérifier contre l'EOF comme
Dans le cas d'un BufferedReader et readLine(), il peut être
parce que readLine() renvoie null en cas d'expressions du FOLKLORE.
OriginalL'auteur 18446744073709551615
Utiliser cette fonction:
Reader
prend en chargemark()
etreset()
.OriginalL'auteur KIM Taegyoon
le prêt() la méthode ne fonctionnera pas. Vous devez lire à partir du flux et de vérifier la valeur de retour pour voir si vous êtes à l'EOF.
OriginalL'auteur James K Polk