Frage

habe ich einen BufferedReader durch eine Datei Looping. Wenn ich einen konkreten Fall getroffen, würde ich Looping mit einer anderen Instanz des Lesers fortfahren, aber an diesem Punkt beginnen.

Alle Ideen für eine empfohlene Lösung? Erstellen Sie einen separaten Leser, verwenden Sie die Markierungsfunktion, etc.?

War es hilfreich?

Lösung

Während auf meinen Kommentar für Ihre Antwort zu warten, ich bin fest mit Annahmen zu machen.

Wenn es der linewise Eingang ist Sie schätzen, können Sie als angenehm überrascht sein, wie ich jetzt, dass RandomAccessFile zu entdecken war (seit 1.4 oder 1.5), um die readLine Methode unterstützt. Natürlich Random gibt Ihnen eine fein abgestimmte Kontrolle über Position.

Wenn Sie IO gepuffert werden sollen, können Sie einen Leser um einen CharacterBuffer Einwickeln betrachten oder vielleicht eine ByteBuffer eingewickelt um eine Datei mit dem nio API abgebildet. Dies gibt Ihnen die Möglichkeit, eine Datei als Speicher, mit Feinsteuerung des Lesezeigers zu behandeln. Und weil die Daten alle im Speicher befinden, ist Pufferung kostenlos enthalten.

Andere Tipps

Haben Sie bei BufferedReader der mark Methode? In Verbindung mit reset es könnte Ihre Bedürfnisse erfüllen.

Wenn Sie verfolgen, wie viele Zeichen, die Sie bisher gelesen haben, können Sie einen neuen BufferedReader und Verwendung erstellen überspringen .

Wie Noel hervorgehoben hat, müssten Sie mit BufferedReader.readLine() zu vermeiden, da readLine() Zeilenumbrüche verwerfen und Ihre Zeichenzählung ungenau machen. Sie sollten wahrscheinlich nicht auf readline count () nie anders, wenn jemand immer genannt wird jemals Ihren Code pflegen müssen.

Wenn Sie die Verwendung skip entscheiden zu tun, sollten Sie Ihre eigenen gepufferte Reader schreiben, die Ihnen einen die Zeilenumbrüche Offset zu zählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top