S'arrêter de lire un fichier texte à partir d'un certain mot

Fermé
josep-t - Modifié le 11 juil. 2017 à 16:39
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 11 juil. 2017 à 17:35
Bonjour,

J'utilise un BufferedReader et un FileReader pour lire un fichier .txt ligne par ligne, et je récupère des informations sur chaque ligne à l'aide de StringTokenizer. J'ai récupéré ce que je souhaite sur les lignes concernées. Le problème c'est qu'il y a seulement une partie dans ce fichier (vers le début) qui m'intéresse, et il y a des lignes qui se ressemblent beaucoup, donc ce genre de pratique ne suffit plus :

if (line.contains("MALFUNCTION") && (!line.endsWith(") "))) {
.....
}


Du coup je me demandais, après des recherches sans succès, ne peut-on pas par exemple s'arrêter de lire un fichier lorsqu'on rencontre un certain mot ou une certaine phrase?
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
11 juil. 2017 à 17:35
Bonjour,

StringTokenizer est déprécié depuis Java 5, il faut oublier son existence.
Voir la documentation : https://docs.oracle.com/javase/1.5.0/docs/api/java/util/StringTokenizer.html

"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead."

De plus, BufferedReader/FileReader c'est assez lourd pour faire de la lecture, il existe des classes plus simple comme Scanner pour faire ça.

try (Scanner sc = new Scanner(new File("C:/test.txt"))) {
    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        System.out.println(line);
        if (line.contains("MALFUNCTION"))
            break;
    }
}
0