Newsgroup: it.comp.java
Titolo: serializzazione

non riesco ad effetturare le serializzazione di oggetti di tipo person
ecco la classe
// file Person.java
import java.io.Serializable;
public class Person implements Serializable {
 private String name;
 private String lastName;
 private String addess;
 private String email;
 private String phone;
 // costruttore
 public Person (String nome, String cognome) {
 
this.name
=nome;
  this.lastName=cognome;
  this.addess="un-defined";
        this.email="un-defined";
  this.phone="un-defined";
 }
 // costruttore parametrizzato
 public Person (String nome, String cognome, String ind, String email,
String tel) {
 
this.name
=nome;
  this.lastName=cognome;
  this.addess=ind;
        this.email=email;
  this.phone=tel;
 }
 public String getName(){  return 
this.name
;}
 public String getLastName(){  return this.lastName;}
 public String getAddress(){  return this.addess;}
 public String getEmail(){  return this.email;}
 public String getPhone(){  return this.phone;}
 public String toString(){
  String output=null;
  output=("---------------------------------------------------------\n"
    +"Nome: "+this.getName()+"\n"
    +"Cognome: "+this.getLastName()+"\n"
    +"Indirizzo: "+this.getAddress()+"\n"
    +"Posta Elettronica: "+this.getEmail()+"\n"
    +"Telefono: "+this.getPhone()+"\n"
    +"---------------------------------------------------------");
  return output;
 }
}
ed ecco il codice con cui cerco di scrivere su file provate a compilare non
funziona mi crea il file ma lo lascia vuoto come se fallisse il metodo
writeObject()
grazie
// file serializePerson.java
import java.io.*;
public class serializePerson {
 public static void main (String[] args){
  String numStr=null;
  int num=0;
  // leggo da tastiera il numero di persone che voglio inserire
  try{
   System.out.println("Inserisci il numero delle persone:");
   numStr=new BufferedReader(new InputStreamReader(System.in)).readLine();
  }
  catch(IOException ignored){
   ignored.printStackTrace(System.err);
   System.exit(1);
  }
  // tento di convertire la stringa letta in numero
  try{
   num=Integer.parseInt(numStr);
  }
  catch(NumberFormatException nfe){
   System.out.println("Attenzione non hai inserito un numero");
   System.exit(2);
  }
  Person[] persone= new Person[num];
  int readPers=0;
  String nome=null;
  String cognome=null;
  String indirizzo=null;
  String email=null;
  String tel=null;
  int i=0;
  while(readPers<num){
   try {
    System.out.println("Inserisci il nome: ");
    nome=new BufferedReader(new InputStreamReader(System.in)).readLine();
    System.out.println("Inserisci il Cognome: ");
    cognome=new BufferedReader(new InputStreamReader(System.in)).readLine();
    System.out.println("Inserisci l'indirizzo: ");
    indirizzo=new BufferedReader(new
InputStreamReader(System.in)).readLine();
    System.out.println("Inserisci l'email ");
    email=new BufferedReader(new InputStreamReader(System.in)).readLine();
    System.out.println("Inserisci il numero di telefono: ");
    tel=new BufferedReader(new InputStreamReader(System.in)).readLine();
   }
   catch(IOException ignored){}
   persone[i]=new Person(nome,cognome,indirizzo,email,tel);
   readPers++;
   i++;
  }
  String fileName="C:/persone.bin";
  File myFile=new File(fileName);
  System.out.println(persone[0]);
  ObjectOutputStream persOut=null;
  try{
   persOut=new ObjectOutputStream(new FileOutputStream(myFile));
  }
  catch(IOException ioe){}
  // riverso il contenuto dell'array persone nel file sopra istanziato
  // Scrivo l'oggetto su file
  int personeScritte=0;
  for (int ix=0; i<persone.length; ix++){
   try {
    persOut.writeObject(persone[ix]);
    personeScritte++;
     }
   catch (IOException ignored){
    System.out.println("Scrittura fallita");
   }
  }
  System.out.println("sono state serializzate "+personeScritte+" sul file
"+myFile.getName());
 }
}

   }
Ho provato e funziona.

 ha scritto nel messaggio
news:zRh5c.58082$O31.2...@news4.tin.it...


 ha scritto nel messaggio
news:c34bpu$240f7q$1...@ID-205038.news.uni-berlin.de...
