Scrivere File su disco per memorizzare dati

di il
5 risposte

Scrivere File su disco per memorizzare dati

Sto sperimentando su un progetto chiamato Gioco, composto da tre classi: Mondo, Memo e Avvia. Devo memorizzare la variabile salute in modo tale da poterla trovare memorizzata ad ogni nuovo avvio e voglio farlo scrivendo un file. Purtroppo non ci riesco. Qualcuno bravo può aiutarmi a capire dove sto sbagliando?

Seguono i link su pastebin delle tre classi del progetto:

Classe Avvia https://pastebin.com/dBppVLs0

Classe Mondo https://pastebin.com/ANPJQBtj

Classe Memo https://pastebin.com/b2XwP8VX

Grazie

5 Risposte

  • Re: Scrivere File su disco per memorizzare dati

    Ciao, visto che sei nuovo del forum.

    Ho cancellato l'hashtag che puntava a faccia libro, visto che non ha nulla a che vedere con questo forum.

    Inoltre il forum supporta l'immissione degli stralci di codice. Non è necessario quindi usare pastebin o simili 

  • Re: Scrivere File su disco per memorizzare dati

    Grazie

  • Re: Scrivere File su disco per memorizzare dati

    Cosa intendi, precisamente, con “non ci riesco”? Cos'è che ti aspetti che faccia e cosa, invece, viene prodotto?

  • Re: Scrivere File su disco per memorizzare dati

    17/04/2023 - Gugullo ha scritto:


    Seguono i link su pastebin delle tre classi del progetto: […]

    Posta la parte di codice significativa, ossia quella in cui stai cercando di scrivere il file, e spiega qual è l'errore o il comportamento anomalo che ottieni.

  • Re: Scrivere File su disco per memorizzare dati

    Verifica in console se vengono sollevate delle eccezioni durante gli accessi al file (scrittura / lettura).
    Ad ogni modo devi rivedere la gestione dei file. Qui di seguito il modo corretto di gestirli (l'esempio è basato sulla scrittura, ma vale lo stesso approccio anche per la lettura):

    // Dichiaro l'oggetto che gestirà la scrittura
    File_Writer fr = null;
    try {
      // Inizializzo l'oggetto che gestirà la scrittura
      fr = new File_Writer( ... );
      // Effettuo la scrittura (le scritture)
      fr.write( ... );
      // Forzo la scrittura su disco (potrebbero esserci meccanismi di buffering)
      fw.flush();
    } catch (Exception e) {
      // C'è stata un'eccezione, la gestisco come meglio posso
      e.printStackTrace();
    } finally {
      // Alla fine di tutto (che sia andato tutto bene o che vi siano eccezioni) chiudo l'oggetto
      if (fw != null) {
         try { fw.close(); } catch (Exception e) { }
      }
    }

    ** Ho dovuto scrivere File_Writer (con l'underscore) su suggerimento dell'amministratore altrimenti le policy di sicurezza del forum bloccavano il post **

    Per il resto non ho visto cose strane nella classe che gestisce lettura e scrittura (non ho guardato le altre).

    Consiglio: utilizza sempre i percorsi alla "unix", ovvero con lo slash ( / ) così hai garantito anche un minimo di portabilità e non sei costretto a correre dietro al quoting del backslash.

    PS: Fai sistemare il terzo link che punta a FB e non a pastebin.

Devi accedere o registrarti per scrivere nel forum
5 risposte