/ / Util-Methode, um Zeile für Zeile zu erhalten # - Java, Apache-Commons-Io

Util-Methode, um Zeile für Zeile # - Java, Apache-Commons-Io zu bekommen

Gibt es eine Util-Methode, um den Zeileninhalt nach Zeilennummer aus einer bestimmten Datei abzurufen?

Antworten:

2 für die Antwort № 1

Am einfachsten ist es, alle Zeilen in eine Liste einzulesen und die Zeile anhand der Nummer in dieser Liste nachzuschlagen. Sie können verwenden

List<String> lines = FileUtils.readLines(file);

Meine Datei hat 3 GB und ich möchte nicht alle Zeilen in meinem Java - Speicher speichern

Ich würde sicherstellen, dass Sie viel Gedächtnis haben. Sie können 32 GB für weniger als 200 USD kaufen.

Angenommen, dies ist keine Option, die Sie könnenIndizieren Sie die Datei, indem Sie sie einmal lesen und den Versatz jeder Zeile in einer anderen Datei speichern. Es könnte ein 32-Bit-Versatz sein, aber es wäre einfacher / skalierbarer, wenn Sie einen 64-Bit-Versatz verwenden würden.

Sie können dann den Versatz jeder Zeile und den Versatz der nächsten Zeile nachschlagen, um zu bestimmen, wo die einzelnen Zeilen gelesen werden sollen. Ich würde erwarten, dass dies ungefähr 10 Mikrosekunden dauert, wenn es effizient implementiert wird.

Übrigens: Wenn Sie es in den Java-Speicher geladen hätten, wäre es ungefähr 100x schneller.