Heim >Java >javaLernprogramm >Wie kann ich eine bestimmte Zeile aus einer Datei in Java effizient lesen?

Wie kann ich eine bestimmte Zeile aus einer Datei in Java effizient lesen?

DDD
DDDOriginal
2024-12-16 14:31:12814Durchsuche

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

Bestimmte Zeilen aus einer Datei in Java lesen

In Java kann das Lesen einer bestimmten Zeile aus einer Datei mit verschiedenen Methoden erreicht werden. In diesem Artikel werden zwei Ansätze für den Zugriff auf bestimmte Zeilen anhand ihrer Zeilennummern untersucht.

Kleine Dateien

Bei kleinen Textdateien besteht eine einfache Lösung darin, alle Zeilen in eine Liste einzulesen und dann das Abrufen der gewünschten Zeile mithilfe ihres Index. Mit der Methode Files.readAllLines(Path) können alle Zeilen wie folgt gelesen werden:

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

Dieser Ansatz ist jedoch für große Dateien nicht effizient, da die gesamte Datei in den Speicher geladen wird.

Große Dateien

Bei großen Dateien besteht eine alternative Methode, die das Laden der gesamten Datei vermeidet, in der Verwendung von skip() und findFirst() Methoden. Hier überspringen wir die ersten n-1 Zeilen und rufen dann die n-te Zeile ab:

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

Dieser Ansatz ist für große Dateien effizienter, da die Zeilen einzeln gestreamt werden, wodurch die Speichernutzung minimiert wird.

Das obige ist der detaillierte Inhalt vonWie kann ich eine bestimmte Zeile aus einer Datei in Java effizient lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn