03/10/2023 - SpiritoLibero ha scritto:
Alcune considerazioni.
- Il codice non te lo fa postare perchè al suo interno c'è scritto File Writer (tutto attaccato) e al forum sta cosa non piace (ho già aperto un ticket con l'amministratore per sta cosa e credo ci stiano ancora lavorando)
- La gestione dei writer andrebbe migliorata (vedi codice più sotto)
- Fatti stampare il percorso e avvia l'applicazione da riga di comando, così da vedere cosa gli arriva
-
Questo è il codice per la gestione corretta dei writer (ho messo il carattere di sottolineatura proprio per il problema del forum):
File_Writer fw = null;
Print_Writer pw = null;
try {
fw = new File_Writer(nomeFile);
pw = new Print_Writer( fw );
...
pw.flush();
} catch (Exception e) {
throw new DAOException(e);
} finally {
if (pw != null) {
try { pw.close(); } catch (Exception e) { }
} else {
if (fw != null) {
try { fw.close(); } catch (Exception e) { }
}
}
}
Non è sufficiente chiudere il Print Writer: se per una qualche ragione assurda il File Writer è stato creato, ma il Print Writer no avrai un oggetto che non è stato chiuso.
Questo è ciò che dovresti aggiungere per farti stampare il percorso:
public static void salvaOperazioni(Portafoglio portaf, String nomeFile) throws DAOException {
System.out.println("Percorso arrivato: " + nomeFile);
... // Resto del codice
}
In questo modo, avviando il programma da console, hai a video il percorso che arriva a quel metodo.
A me rimane da capire una cosa, rispetto al tuo primo post: da qualche parte vai a leggere il file se esiste? Se è così, puoi postare anche la parte di codice della lettura? Perchè potrebbe esserci potenzialmente un problema anche lì.
Ciao.
Ciao,
grazie del messaggio innanzittuto.
Si ho fatto delle prove per verificare se il percorso è corretto e risultava corretto.
Ma la cosa che mi sembrava strana era che fino al rilascio precedente andava tutto ok e il codice del salvataggio non era stato toccato, avevo modificato delle cose ma non quella classe.
Alla fine ho capito che se era in uso Netbeans, non so per quale motivo (forse chiudevo l'applicazione in modo errato, dalla x e non da “esci”) non mi faveva sovrascrivere il file che avevo. Infatti riavviando e aprendo il programma per primo funziona tutto regolarmente.
Personalmente, questo codice, scritto sicuramente con i piedi, è frutto di un esperienza che ho fatto studiando “a casa” e di quale nozione all'università una 15 di anni fa… Non ho potuto finire l'università aihmè e tutti i suoi esami….