Java - problem med att få ut data från objekt vid serialization/deserialization
Hej,
Det är så att jag skriver ett litet program som sparar ett objekt som innehåller namn och ett personnummer, detta sparas till en arraylist som i sin tur sparas till en .ser fil. Jag har en person-klass som implementerar serializable.
Min tanke är att jag vill läsa från filen med hjälp av att slänga in det jag har i filen till en arraylist så att jag kan printa ut flera objekt framöver. Jag kan se att objektet sparas så det är att få ut datan som är problemet.
Jag ser att felet är vid "recordList = (ArrayList)oIn.readObject();" men jag förstår inte varför?
"Exception in thread "main" java.lang.ClassCastException: testtt.person cannot be cast to java.util.ArrayList"
Jag har gjort på liknande sätt förut men nu vill det sig icke, några tips?
Såhär ser min kod ut
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package testtt;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Sebastian
*/
public class Testtt {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws ClassNotFoundException
{
Testtt call = new Testtt();
System.out.println("Nu läser vi in lite information till fil");
call.saveObjectToFile();
System.out.println("-----------------------------------------");
System.out.println("-----------------------------------------");
System.out.println("Nu skriver vi ut information från fil");
System.out.println("-----------------------------------------");
System.out.println("-----------------------------------------");
call.readObjectFromFile();
}
public void saveObjectToFile(){
try {
ArrayList<person> saveList = new ArrayList<>();
String name = "Johan";
int ssn = 871220;
String street = "Johansväg 32";
person person = new person();
File file = new File("person.ser");
ObjectOutputStream oOut = new ObjectOutputStream(new FileOutputStream(file, true));
person.setName(name);
person.setSSN(ssn);
saveList.add(person);
oOut.writeObject(saveList);
oOut.close();
} catch (IOException ex) {
System.out.println("Något gick fel");
ex.printStackTrace();
}
}
public void readObjectFromFile() throws ClassNotFoundException{
try{
ArrayList <person> recordList = new ArrayList<>();
ObjectInputStream oIn = new ObjectInputStream(new FileInputStream("person.ser"));
recordList = (ArrayList)oIn.readObject();
for(person list : recordList){
System.out.println(list.getName() + " " + list.getSSN());
}
}catch(IOException ex){
System.out.println("Läsning från fil gick fel");
ex.printStackTrace();
}
}
}
Tack på förhand!
"Happiness is only real when shared"