Recherche d'un fichier pour une Chaîne et de retour de cette Chaîne si trouvé
Comment pouvez-vous rechercher dans un fichier txt pour une Chaîne qui les entrées de l'utilisateur et ensuite de retour à la Chaîne de la console. J'ai écrit un code qui ne fonctionne pas en dessous, mais j'espère que cela peut illustrer mon point de vue...
public static void main(String[] args) {
searchforName();
}
private static void searchForName() throws FileNotFoundException {
File file = new File("leaders.txt");
Scanner kb = new Scanner(System.in);
Scanner input = new Scanner(file);
System.out.println("Please enter the name you would like to search for: ");
String name = kb.nextLine();
while(input.hasNextLine()) {
System.out.println(input.next(name));
}
}
"Leaders.txt" fichier contient une liste de noms.
Vous avez besoin pour itérer sur chaque ligne du fichier (alors qu'il a tout) et de contrôler votre Chaîne dans chacune de ces lignes.
Vous êtes à la recherche pour certains de données dans cette ligne? Vous pouvez lire le fichier à la chaîne (si ce n'est pas trop gros) - par exemple, avec apache commune fileutils.
Vous êtes à la recherche pour certains de données dans cette ligne? Vous pouvez lire le fichier à la chaîne (si ce n'est pas trop gros) - par exemple, avec apache commune fileutils.
OriginalL'auteur lancer | 2013-03-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une salle de
Scanner
pour lire le fichier ligne par ligne et de faire un match de la sorte...En ce qui concerne si vous devez utiliser un
Scanner
ou unBufferedReader
pour lire le fichier, lire ce réponse.C'est une habitude et un bon. Lire Efficace Java
OriginalL'auteur Amir Afghani
Scanner est beaucoup trop lent. Exécutez le code suivant à, et de voir les différences. Cherché dans les 750 MO de fichiers, et BufferedReader est 10 fois plus rapide qu'un Scanner en moyenne.
OriginalL'auteur Syed Aqeel Ashiq
La suite de Java 7+ solution a un avantage principal.
Il n'est pas plus courte que le code de cette réponse. Le point principal est que, quand nous ouvrons un
File
nous avons une ressource ouverte et nous devons nous préoccuper de clôture. Sinon, il peut poser un problème de fuite de ressources.De Java 7 la try-with-resources déclaration poignées de fermeture de ressources. Donc l'ouverture d'un
Scanner
soutenu par un fichier devrait ressembler à ça:À l'aide de
Files.readAllLines
nous n'avons pas besoin de se soucier de la fermeture du fichier, puisque cette méthode (JavaDoc)Si le premier occourance d'un
String
est nécessaire que, à la suite de Java 8+ code fait le travail en quelques lignes:Elle renvoie un
Optional
indiquant qu'il pourrait y avoir un résultat vide. Nous l'utilisons par exemple comme suit:OriginalL'auteur LuCio