Dafür benötigen Sie entweder Zeilen mit fester Länge (die Implementierungsdetails sollten in diesem Fall offensichtlich sein) oder Informationen darüber, wie viele Zeilen es gibt und (optional für eine bessere Leistung), welche Offsets in der Datei beginnen ( ein Index von Arten).
Bei kleinen Dateien können Sie einen solchen Index bei Bedarf erstellen, wenn Sie eine zufällige Zeile benötigen. Um dies effizient für große Dateien zu tun, müssen Sie den Index permanent beibehalten, vielleicht in einer separaten Datei.
Wenn Zeilen in etwa gleich lang sind und Sie keine perfekte "Zufälligkeit" benötigen, können Sie auch einen zufälligen Byte-Offset innerhalb der Datei auswählen und nach dem nächsten Zeilenumbruch suchen.
Was Sie möchten, ist LineNumberReader
.
Sie können die Methode setLineNumber()
verwenden, um sich an eine zufällige Position in der Datei zu bewegen.
Eine altmodische Antwort: Wenn Sie eine Null zurückbekommen, rufen Sie einfach die Methode
zurück %Vor%