Serializzazione in java

Stato
Chiusa ad ulteriori risposte.

conpic

Nuovo Utente
8 Feb 2021
1
0
1
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
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
Scrivi il codice usando gli appositi tag!

IMPORTANTE Leggi il regolamento prima di continuare sul forum


Grazie
 
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
S Serializzazione e Strutture dati Java 1
L java api_google Javascript 0
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
F Script java elenco alfabetico non funziona Javascript 3
M AIUTO ESERCIZIO JAVA Javascript 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
F Aiuto java script Javascript 2
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
C Java client / server Java 0
F [OFFRO][RETRIBUITO] PROGRAMMATORE JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
C [Java] testare un metodo con Junit Java 1
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
S [OFFRO] Debug delle tue applicazioni Java Offerte e Richieste di Lavoro e/o Collaborazione 1
L [Java] Aggiungere elementi ad array JSON Java 0
B [Java] Paginazione in risposta HTTP Java 0
A [Java]Date diminuite di un giorno su db MySQL Java 0
K [Java] aiuto switch case Java 1
P [Java] limite destro di un JFrame Java 5
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
A Verifica validità data in Java Java 2
L [Java] Errore json conversione Java 0
Drago73 [Java] leggere/scrivere txt server Java 0
M [Javascript] Java card Java 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
N [Java]problema jasper report dopo compilazione file .jar Java 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
N [Java] jbutton con funzioni Java 2
M [java] esercizio lunghezza array di stringhe Java 0
A [java] problema esercizio Java 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Raziel84 [Java] Combinazione elementi matrice Java 0
A [java] problema esercizio array Java 5
L da php a popup java PHP 2
W Piccolo sistema per gestire alcune periferiche, Java o altro linguaggio? Java 8
S Cerco programmatore java Offerte e Richieste di Lavoro e/o Collaborazione 0
Z [Java] Grassetto assente su font incorporato nel pacchetto jar Java 0
O [Java] Lettura da JSON File Java 0
Z [Java] Caratteri distorti e spaziature errate nelle stampe di componenti swing Java 0
W Aiutino per compilare o eseguire un App Java Java 0
S [JAVA] Geocoding Java Java 0
Andy56 Parametri funzioni in Java Java 0

Discussioni simili