2015-04-17 12 views
9

Also, ich habe es mit der Integration eines Altsystems zu tun. Es erzeugt eine große Textdatei, die Anweisungen in einer großen Zeichenfolge ausgibt. Wirklich große Saite. Wir sprechen 450 000 Zeichen oder mehr.lesen große (450000 + Zeichen) Strings aus Datei

Ich muss das in den Leitungen brechen, eine pro Anweisung. Jeder Befehl ist durch einen fünfstelligen Code getrennt, wobei der Code die Anzahl der Zeichen in der nächsten Anweisung enthält.

Meine Lösung ist das Schreiben ein kleines Java-Programm, das eine gepufferte Leser verwendet die Datei in einen String zu lesen, die anschließend in Linien aufgespalten wird, und in einer neuen Datei gespeichert.

Irgendwelche Hinweise zur Handhabung? Kann ein gepufferter Leser dies in eine reguläre Zeichenkette einlesen? Mache ich das falsch?

+0

'BufferedReader' sollte in der Lage sein, die Daten zu lesen. – luiges90

+0

würde ich 'StringBuilder' verwenden – brso05

+0

Eigentlich würde ich die Datei in Blöcken verarbeiten, anstatt sie alle in einen' String' oder 'StringBuilder' setzen, wenn die Leistung sonst ein Problem wird würde ich alles in einen' StringBuilder' laden Sie es einfach. – brso05

Antwort

3

Ja. Verwenden Sie einen gepufferten Leser.

Arbeit die maximale Größe eines Befehls und ein char [] dieser Größe erstellen. Dann etwas tun wie:

Sie setzen dies in eine while-Schleife, die endet, wenn die Datei endet.

Dies könnte nicht die Laufzeit effizient sein, aber es ist wahrscheinlich gut genug und wird einfach genug sein, zum Laufen zu bringen.

+0

ich am Ende dieses fast genau tun. –