Errore con file e Stream

di il
2 risposte

Errore con file e Stream

Dunque, sto lavorando ad un progetto che prevede diverse operazione su un file contenente informazioni su dei corsi scolastici(codice, titolo, ore...).
I corsi vengono caricati nei file uno alla volta e quando vado a stamparli(eseguendo un'istruzione di lettura) mi stampa il primo corso inserito senza problemi, ma non stampa il secondo dando il suddetto errore: Invalid Type Code AC. Sapreste darmi qualche soluzione perfavore?

2 Risposte

  • Re: Errore con file e Stream

    LordAldino ha scritto:


    mi stampa il primo corso inserito senza problemi, ma non stampa il secondo dando il suddetto errore: Invalid Type Code AC. Sapreste darmi qualche soluzione perfavore?
    Anche se hai detto poco (e non mostrato il codice), ho già capito: a) hai usato la "serializzazione" degli oggetti. E b) cosa più importante (che è il problema), l'hai usata in modalità "append".
    Ovvero hai un file con già dei dati e in seguito lo apri con una classe di I/O con il costruttore che ha il boolean append passando true (ovvero appunto in "append").

    Ho una "brutta" notizia: la serializzazione degli oggetti di serie NON funziona in append. La serializzazione usa un protocollo binario con un formato ben preciso che contempla la presenza di un "header" di marcatura all'inizio dello stream. Se appendi al file, quel header si trova anche in mezzo e fa fallire ObjectInputStream.

    La soluzione: rileggi tutti gli oggetti, aggiungi/modifichi in memoria, poi riscrivi TUTTO il file.
  • Re: Errore con file e Stream

    Ah ok grazie, molto utile e gentile
Devi accedere o registrarti per scrivere nel forum
2 risposte