Scenario:sta lanciando un'operazione costosa?
- Sto analisi di un (file carattere) file di grandi dimensioni. Ad esempio un file .csv (non esattamente il mio caso)
- Non riesco a tenere l'intero file in memoria. Quindi devo attuare una strategia tampone.
- Voglio costruire un gestore generico che manterrà un numero costante di righe in memoria (come stringhe). Questo gestore recupera altre linee se necessario rimuovendo le linee non necessarie.
- Su questo gestore creerò un parser che trasformerà le linee in oggetti Java e opererà modifiche su quegli oggetti. Una volta apportate le modifiche (aggiorna alcuni campi sugli oggetti), le modifiche rimandano al file.
Devo:
- Invece di mantenere il buffer come un array di stringhe, devo mantenere il buffer direttamente come oggetti (facendo un unico getto)? oppure ...
- Conservare il buffer come linee, ogni volta che devo operare sul buffer, inoltrare le informazioni all'oggetto giusto, apportare le modifiche, mantenere le modifiche sul file. Le operazioni sequenziali necessitano di cast supplementari.
Dovrò mantenere le cose semplici. Qualche suggerimento?
In che modo si fondono le stringhe su altri tipi di dati? –
stai parlando di casting o parsing? – fortran
È più complicato. Non è esattamente un cast da/a String, c'è un'interfaccia Row e più implementazioni. Ogni implementazione è come un contenitore, che restituisce un oggetto. Quell'oggetto deve essere lanciato. Se devo fare alcune modifiche su una riga specifica, sono necessari alcuni calchi nel meccanismo interno. –