Quello che descrivi e' una situazione classica.
Vediamola in termini generici:
- un'applicazione, durante la sua esecuzione, ha uno STATO, che e' dato dal corrente valore di TUTTE le variabili locali e lobali.
- poiche' lo STATO e' mantenuto in MEMORIA PRINCIPALE, come ben sai, la MEMORIA PRINCIPALE NON E' PERSISTENTE, cioe' ogni volta che mandi in esecuzione l'applicazione, lo STATO della tua applicazione riparte dallo stato iniziale.
Quindi, quello che ti serve e':
- SUDDIVIDERE lo stato della tua applicazione in DUE gruppi distinti: 1) uno STATO PERSISTENTE, che viene mantenuto tra un'esecuzione e l'altra della tua applicazione, 2 2) uno STATO TRANSIENTE, che riparte dallo stato iniziale ogni volta che l'applicazione riparte.
E' ovvio che lo STATO PERSISTENTE deve essere il piu' piccolo possibile, per n-mila ragioni, la principale delle quali e' la SEMPLICITA'.
Ora, identificato quale siat lo STATO che deve essere PERSISTENTE, come fare per implementarlo?
Semplice: devi usare la MEORIA PERSISTENTE del tuo computer, cioe' il DISCO RIGIDO.
Quindi, in qualche modo, il tuo STATO PERSISTENTE deve essere SALVATO su disco quando l'applicazione esce, e RILETTO quando l'applicazione riparte. Il problema puo' nascere la PRIMA VOLTA che la tua applicazione parte, in cui NON ESISTE ANCORA un PRECEDENTE SALVATAGGIO dello stato persistente, ma questo puo' essere risolto creandolo a MANO (tanto, comunque, avrai eseguito la tua applicazione N-mila volte durante lo sviluppo).
Ora, come si salva uno STATO persistente su DISCO?
Ci sono N-MILA soluzioni:
- uso di un file di tipo ASCII: in questo caso puoi usare dei formati ormai consolidati per questo tipo di attivita: XML, JSON, file di properties, oppure un formato inventato di tuo gradimento (nel 99.9999% dei casi, pessima scelta)
- uso di un file binario ed il supporto alla Serializzazione fornita da Java, oppure un formato di tuo gradimento (nel 99.9999% dei casi, pessima scelta)
- uso di un DBMS (database Management System): compito del DBMS e' proprio quello di mantenere le informazioni PERSISTENTI e permetterne la loro manipolazione.
Se non hai molte informazioni persistenti da leggete/scrivere, la soluzione piu' semplice e' il file di properties