Maison >Java >javaDidacticiel >Comment puis-je lire efficacement des lignes spécifiques à partir d'un fichier en Java ?

Comment puis-je lire efficacement des lignes spécifiques à partir d'un fichier en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-27 11:56:09885parcourir

How Can I Efficiently Read Specific Lines from a File in Java?

Lecture de lignes spécifiques à partir d'un fichier en Java

Récupérer des lignes spécifiques à partir d'un fichier peut être utile dans divers scénarios. Java offre plusieurs façons d'accomplir cette tâche, en particulier lorsque vous travaillez avec des fichiers petits et grands.

Petits fichiers

Si la taille du fichier est relativement petite, l'approche la plus simple consiste à lire l'intégralité du fichier en mémoire puis à accéder à la ligne souhaitée. Ceci peut être réalisé en utilisant la méthode Files.readAllLines() :

String line32 = Files.readAllLines(Paths.get("file.txt")).get(32);

Dans cet exemple, la partie Paths.get("file.txt") représente le chemin du fichier et readAllLines() lit l'intégralité de fichier et stocke chaque ligne sous forme de chaîne dans une liste. En utilisant get(32), nous pouvons accéder directement à la 32ème ligne de la liste.

Fichiers volumineux

Pour les fichiers volumineux, la lecture de l'intégralité du fichier en mémoire peut être inefficace. Dans de tels cas, la méthode Files.lines() peut être utilisée pour traiter le fichier ligne par ligne :

try (Stream<String> lines = Files.lines(Paths.get("file.txt"))) {
    line32 = lines.skip(31).findFirst().get();
}

Ici, Files.lines() crée un flux de lignes à partir du fichier. La méthode skip(31) ignore les 31 premières lignes et findFirst() récupère la 32ème ligne. Enfin, get() convertit la valeur facultative en chaîne.

Cette approche vous permet de parcourir efficacement le fichier et de récupérer la ligne souhaitée sans avoir à charger l'intégralité du fichier en mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn