La lecture des lignes avec BufferedReader et de la vérification de fin de fichier
Si j'ai quelque chose comme ceci dans mon code:
String line = r.readLine(); //Where r is a bufferedReader
Comment puis-je éviter une collision si la ligne suivante est la fin du fichier? (c'est à dire nulle)
J'ai besoin de lire la ligne suivante, car il peut y avoir quelque chose là-bas que j'ai besoin de traiter, mais si il n'y a pas le code, tout se bloque.
Si il y a quelque chose là, alors tout est OK, mais je ne peux pas être garanti qu'il y aura quelque chose.
Donc si je fais quelque chose comme: (pseudo-code):
if (r.readLine is null)
//End code
else {check line again and excecute code depending on what the next line is}
Le problème que j'ai avec quelque chose comme cela, est que lorsque je vérifie la ligne contre null, déjà, elle se déplace sur la ligne suivante, comment puis-je le vérifier?
Je n'ai pas travaillé sur un moyen de ce faire - toute suggestion serait d'une grande aide.
OriginalL'auteur Zippy | 2013-07-16
Vous devez vous connecter pour publier un commentaire.
Suis... Vous pouvez tout simplement utiliser une telle construction:
OriginalL'auteur Andremoniy
Si vous voulez faire une boucle par toutes les lignes de l'utiliser:
OriginalL'auteur Lugaru
Vous pouvez utiliser la procédure suivante pour vérifier pour la fin du fichier.
Cette échoue silencieusement sur l'exception et BufferedReader::prêt peut retourner false, même si la prochaine lecture à réussir.
OriginalL'auteur Stephen Whitlock
Dans votre cas, vous pouvez lire la ligne suivante, car il peut y avoir quelque chose là-bas.Si il n'y a pas de quoi, votre code ne plante pas.
OriginalL'auteur Sushant Somani
Une question, en premier lieu, pourquoi n'utilisez-vous pas "l'Approche par Programmation Fonctionnelle"? De toute façon, Une nouvelle méthode lignes() a été ajouté depuis Java 1.8, il permet de BufferedReader renvoie le contenu que Flux. Il obtient toutes les lignes du fichier comme un flux, alors vous pouvez trier la chaîne en fonction de votre logique, puis recueillir le même dans une liste/définir et d'écrire sur le fichier de sortie. Si vous utilisez la même approche, il n'y a pas besoin de s'inquiéter à propos de NullPointerException. Ci-dessous l'extrait de code pour la même chose:-
OriginalL'auteur Abhinav
Vous pourriez exprès d'avoir jeter de l'erreur à l'intérieur de votre boucle. c'est à dire:
ce que tout le monde est triste devraient également fonctionner.
Pourquoi est-il si mauvais? Je ne vois rien de mal à cela...
Serait-ce réellement lancer
NullPointerException
? Je pense que vous avez besoin de vérifierif (s == null)
.OriginalL'auteur sparks