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

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

Susan Sarandon
Susan SarandonOriginal
2024-11-27 11:56:09837Durchsuche

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

Bestimmte Zeilen aus einer Datei in Java lesen

Das Abrufen bestimmter Zeilen aus einer Datei kann in verschiedenen Szenarien nützlich sein. Java bietet mehrere Möglichkeiten, diese Aufgabe zu erfüllen, insbesondere wenn mit kleinen und großen Dateien gearbeitet wird.

Kleine Dateien

Wenn die Dateigröße relativ klein ist, ist dies der einfachste Ansatz besteht darin, die gesamte Datei in den Speicher einzulesen und dann auf die gewünschte Zeile zuzugreifen. Dies kann mit der Methode Files.readAllLines() erreicht werden:

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

In diesem Beispiel stellt der Teil Paths.get("file.txt") den Dateipfad dar und readAllLines() liest den gesamten Datei und speichert jede Zeile als String in einer Liste. Durch die Verwendung von get(32) können wir direkt auf die 32. Zeile der Liste zugreifen.

Große Dateien

Bei großen Dateien kann es sinnvoll sein, die gesamte Datei in den Speicher zu lesen ineffizient. In solchen Fällen kann die Methode Files.lines() verwendet werden, um die Datei Zeile für Zeile zu verarbeiten:

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

Hier erstellt Files.lines() einen Zeilenstrom aus der Datei. Die Methode „skip(31)“ überspringt die ersten 31 Zeilen und findFirst() ruft die 32. Zeile ab. Schließlich wandelt get() den optionalen Wert in einen String um.

Dieser Ansatz ermöglicht es Ihnen, die Datei effizient zu durchlaufen und die gewünschte Zeile abzurufen, ohne die gesamte Datei in den Speicher laden zu müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte Zeilen 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