Scenariusz:Rzuca kosztowną operację?
- ja analizowania dużego pliku (plik znakowy). Na przykład plik .csv (niezupełnie mój przypadek)
- Nie mogę zatrzymać całego pliku w pamięci. Muszę więc wdrożyć strategię buforowania.
- Chcę zbudować ogólny program obsługi, który będzie utrzymywał stałą liczbę linii w pamięci (jako ciągi znaków). Ten moduł obsługi pobiera w razie potrzeby inne wiersze, usuwając niepotrzebne wiersze.
- Przez ten przewodnik zbuduję parser, który przekształci linie w obiekty Java i będzie obsługiwał zmiany na tych obiektach. Po wprowadzeniu zmian (zaktualizuj niektóre pola na obiektach) kontynuuj zmiany z powrotem do pliku.
Mam:
- Zamiast zachować bufor jako tablica ciągów, należy zachować bufor bezpośrednio jako obiekty (doing pojedynczy cast)? lub ...
- Zachowaj bufor jako linie, za każdym razem, gdy muszę operować na buforze, rzuć informacje do odpowiedniego obiektu, wykonaj zmiany, zachowaj zmiany z powrotem do pliku. Sekwencyjne operacje będą wymagać dodatkowych rzutów.
Będę musiał zachować rzeczy proste. Jakieś sugestie?
Jak dokładnie przesyłasz ciągi do innych typów danych? –
mówisz o rzucaniu lub analizie? – fortran
To bardziej skomplikowane. Nie jest to dokładnie rzutowanie z/do String, istnieje wiersz interfejsu i więcej implementacji. Każda implementacja jest jak kontener, który zwraca obiekt. Ten obiekt musi zostać rzucony. Jeśli muszę wprowadzić pewne zmiany w określonym wierszu, potrzebne są pewne rzutowania w wewnętrznym mechanizmie. –