Lire les données d'un fichier texte à l'aide de Java
J'ai besoin de lire un fichier texte ligne par ligne à l'aide de Java. J'utilise available()
méthode de FileInputStream
de vérifier et d'une boucle sur le fichier. Mais lors de la lecture, la boucle prend fin au bout de la ligne, avant que le dernier. c'est à dire, si le fichier a 10 lignes, la boucle ne lit que les 9 premières lignes.
L'extrait de code utilisé :
while(fis.available() > 0)
{
char c = (char)fis.read();
.....
.....
}
Vous devez utiliser BufferedReader pour lire un fichier ligne par ligne.
OriginalL'auteur Saran | 2010-05-19
Vous devez vous connecter pour publier un commentaire.
Vous ne devez pas utiliser
available()
. Il ne donne pas de garanties, afin que jamais. À partir de la Les docs de l'API de()
:Vous auriez probablement souhaitez utiliser quelque chose comme
(prises de http://www.exampledepot.com/egs/java.io/ReadLinesFromFile.html)
Je sais. Que, cependant, nécessite un autre
try...catch
depuisclose()
peut lui-même par le biais deIOException
. Devient de tri de laide pour un exemple minimal.Yep. A été saisie d'une réponse à mi-chemin moi-même quand j'ai décidé de gratter le try/catch (vous me battre pour la réponse).
OriginalL'auteur aioobe
Comment à propos de l'utilisation du Scanner? Je pense que l'utilisation du Scanner est plus facile
Lire plus à propos de Java IO ici
OriginalL'auteur vodkhang
Si vous voulez le lire ligne par ligne, l'utilisation d'un
BufferedReader
. Il a unreadLine()
méthode qui retourne la ligne comme une Chaîne de caractères, ou null si la fin de fichier a été atteinte. Si vous pouvez faire quelque chose comme:(Notez que ce code ne gère pas les exceptions ou de fermer le flux de données, etc)
OriginalL'auteur Chris
OriginalL'auteur Richard H
Vous pouvez essayer FileUtils de org.apache.commons.io.FileUtils, essayez de télécharger jar à partir d'ici
et vous pouvez utiliser la méthode suivante:
FileUtils.readFileToString("yourFileName");
Espère que cela vous aide..
OriginalL'auteur Kallathiyan
La raison de votre code sauté la dernière ligne parce que vous vous mettez
fis.available() > 0
au lieu defis.available() >= 0
OriginalL'auteur JimmyBob23
Dans Java 8 vous pouvez facilement transformer votre fichier texte en une Liste de Chaînes de caractères avec des flux de données à l'aide de
Files.lines
etcollect
:OriginalL'auteur Kris
OriginalL'auteur Abdullah Ahmad
Essayer ce juste un peu de recherche dans Google
OriginalL'auteur Incognito
Essayez d'utiliser java.io.BufferedReader comme ça.
OriginalL'auteur Ravindra Gullapalli
Oui, de mise en mémoire tampon doit être utilisé pour de meilleures performances.
Utilisation BufferedReader OU byte[] pour stocker vos données temporaires.
grâce.
OriginalL'auteur Parth
de l'utilisateur du scanneur, il doit travailler
OriginalL'auteur Gautam
OriginalL'auteur Jayanta Rout
OriginalL'auteur marycrete
Cela a fonctionné pour moi
OriginalL'auteur MIG007
Cela ressemble à un copier/coller de Ravindra Gullapalli de réponse. Sauf qu'il a utilisé un
FileInputStream
, mais vous avez utilisé unFileReader
(comme Aioobe). Quelle est la valeur de votre copier/coller de la réponse de fournir près de 5 ans plus tard?OriginalL'auteur shiva prasad
Simple code pour la lecture de fichier en JAVA:
OriginalL'auteur