Discussione chiusa
Visualizzazione dei risultati da 1 a 3 su 3

Serializzazione

  1. #1
    conpic non  in linea Novello
    Salve a tutti. Ho un problema di serializzazione su un file con estensione .dat. Ho generato due semplici file: uno scrivianag.java con la classe anag.java e un altro file leggianag.java che legge i dati scritti dal primo. scrivianag.java il seguente:
    import java.io.*;
    /*
    Memorizza cognome e nome in un file serializzato
    */
    public class scrivianag {

    public static void main(String[] args) {

    //impostazione dello standard di input
    InputStreamReader in = new InputStreamReader(System.in);
    BufferedReader tastiera = new BufferedReader(in);

    String wcogn,wnome;
    String risp="s";
    //dichiarazione oggetto
    anag oanag;

    try{
    //definizione stream e apertura del file anag.dat
    FileOutputStream w=new FileOutputStream("anag.dat",true);
    //definizione stream per l'utilizzo dei metodi per la scrittura
    ObjectOutputStream fw=new ObjectOutputStream(w);
    while (risp.equals("s"){

    System.out.print("Cognome ";
    wcogn=tastiera.readLine();
    System.out.print("Nome ";
    wnome=tastiera.readLine();

    //creazione istanza dell'oggetto (memorizzazione dati
    //nell'oggetto
    oanag=new anag(wcogn,wnome);

    //scrittura dell'oggetto nel file fr
    fw.writeObject(oanag);

    System.out.println("Continui s/n ?";
    risp=tastiera.readLine();
    }
    fw.flush();
    fw.close();

    }
    catch(Exception e){
    System.out.println("Errore"+e.getMessage());
    }
    }
    }
    la classe anag.java la seguente:
    import java.io.*;
    public class anag implements Serializable {

    //elenco attributi
    public String cogn;
    public String nome;

    //costruttore
    public anag(String cogn,String nome){
    this.cogn=cogn;
    this.nome=nome;
    }
    }


    leggi.java invece il seguente:
    import java.io.*;
    /*
    Memorizza cognome e nome in un file serializzato
    */
    public class leggianag {

    public static void main(String[] args) {

    //impostazione dello standard di input
    InputStreamReader in = new InputStreamReader(System.in);
    BufferedReader tastiera = new BufferedReader(in);

    String wcogn,wnome;
    String risp="s";
    //dichiarazione oggetto
    anag oanag;


    //********** lettura del file anag.dat
    try{
    FileInputStream r=new FileInputStream("anag.dat";


    while (true){
    try{
    ObjectInputStream fr=new ObjectInputStream(r);
    oanag=(anag)fr.readObject();
    System.out.println(oanag.cogn+" "+oanag.nome);

    }
    catch(EOFException e){
    break;
    }
    }

    r.close();
    }
    catch (Exception e){
    System.out.println("Errore "+e.getMessage());
    }
    }

    }


    Se inserisco pi coppie di nominativi sembra che siano memorizzate nel file. Quando leggo invece, legge solo la prima coppia e segnala il seguente errore:

    ant -f H:\NETBEANS\leggianag -Dnb.internal.action.name=run run
    init:
    Deleting: H:\NETBEANS\leggianag\build\built-jar.properties
    deps-jar:
    Updating property file: H:\NETBEANS\leggianag\build\built-jar.properties
    Compiling 1 source file to H:\NETBEANS\leggianag\build\classes
    compile:
    run:
    congedo sergio
    Errore invalid stream header: 7371007E
    BUILD SUCCESSFUL (total time: 0 seconds)

    Da quanto letto su internet sembra che java tra una memorizzazione e un'altra inserisca degli header , non riconosciuti in fase di lettura. Come posso risolvere il problema?. Grazie

  2. #2
    Usa i tag code per il codice. Modifica il post grazie
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    Chiuso per crossposting con pierotofy.it
    ℹ️ Leggi di pi su AntonioG ...

Discussione chiusa

Potrebbero interessarti anche ...

  1. [VB.net 2017] - Errore serializzazione.
    Da Dev-01 nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 03-06-2019, 10:52
  2. serializzazione xml in vb .net
    Da GRAZIANO_Principiante nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 07-02-2018, 08:12
  3. Serializzazione di Bitmap e invio tramite Socket
    Da Pierx nel forum Visual Basic .Net
    Risposte: 13
    Ultimo Post: 06-11-2013, 14:45
  4. Articolo: BinaryFormatter (Serializzazione Binaria)
    Da Fix nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 03-11-2010, 00:11
  5. Serializzazione
    Da Frosty nel forum Visual Basic .Net
    Risposte: 11
    Ultimo Post: 05-01-2009, 11:20