Zajmuję się więc integracją starszego systemu. Tworzy on duży plik tekstowy, który drukuje instrukcje w jednym dużym łańcuchu. Naprawdę duży ciąg. Mówimy o 450 000 znaków lub więcej.
Muszę to podzielić na linie, po jednej na instrukcję. Każda instrukcja jest oddzielona pięciocyfrowym kodem, gdzie kod zawiera liczbę znaków w następnej instrukcji.
Moim rozwiązaniem jest napisanie małego programu Java, który używa buforowanego czytnika do odczytu pliku w łańcuch, który jest następnie dzielony na linie i zapisywany w nowym pliku.
Jakieś rady na temat tego postępowania? Czy buforowany czytnik będzie mógł odczytać to w zwykłym ciągu? Czy robię to źle?
Odpowiedzi:
3 dla odpowiedzi № 1Tak. Użyj buforowanego czytnika.
Opracuj maksymalny rozmiar instrukcji i utwórz znak [] o takim rozmiarze. Następnie zrób coś takiego:
reader.read(charArray, 0, 5);
// parse the header
reader.read(charArray, 0, lengthOfInstruction);
String instruction = new String(charArray, 0, lengthOfInstruction);
// do stuff with the instruction
Umieszczasz to w pętli while, która kończy się po zakończeniu pliku.
Może to nie być najbardziej wydajne w czasie wykonywania, ale prawdopodobnie jest wystarczająco dobre i będzie wystarczająco proste, aby działać.