После (что я считаю успешным) сериализации ArrayList с текстом сделать c SerializedCars.txt десериализация не работает.
Похоже, SerializeObject () работает и DeserializeObject (), потому что он знает атрибуты объектов и сколько объектов было в ArrayList до SerializeObject (), но все атрибуты пусты.
Атрибуты Name, ID, Credit, хранящиеся в ArratList объектов типа User, не передаются.
У меня есть сериализация и десериализация здесь
public static void SerializeObject(ArrayList<User> array) throws Exception{
try {
FileOutputStream fileOut = new FileOutputStream("SerializedCars.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(array);
out.close();
fileOut.close();
}catch(IOException e) {
System.out.println("serialization catch\n" + e);
}
}
public static ArrayList<User> DeserializeObject() throws Exception{
try
{
ArrayList<User> list = new ArrayList<User>();
FileInputStream fis = new FileInputStream("SerializedCars.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
list = (ArrayList<User>) ois.readObject();
/*
//after Type safety: Unchecked cast from Object to ArrayList<User>, but same result
ArrayList<User> readObject = (ArrayList<User>) ois.readObject();
list = readObject;
*/
ois.close();
fis.close();
return list;
} catch (FileNotFoundException c)
{
ArrayList<User> ReturnNullarray = null;
System.out.println("File not found - catch1 customer deserialize\n" + c);
return ReturnNullarray;
}
catch (IOException ioe)
{
ArrayList<User> ReturnNullarray = null;
System.out.println("catch2 customer deserialize\n" + ioe);
return ReturnNullarray;
}
}
Здесь я вызываю DeserializeObject ():
public static void DeserializeObjectTEST() {
try {
customers = DeserializeObject();
System.out.println(customers);
}catch(Exception e) {
System.out.println("ERROR DeserializeObjectTES()");
e.printStackTrace();
}
, и он печатает это
[models. Customer@205ce8bc, модели. Customer@535e713b, модели. Customer@3e1cf989, модели. Customer@2739c1bf, модели. Customer@60e7c4ec, модели. Customer@4010b662]
, но атрибуты каждого клиента равны нулю или 0.
Вот класс пользователя:
public class User {
private String Name;
private String Password;
private String ID;
private int Credit;
...
}
Вот класс клиента:
public class Customer extends User implements Serializable{
...
}
Кажется, я не могу найти проблему.