В настоящее время у меня возникли некоторые проблемы с сериализацией и десериализацией (я подозреваю, что проблема заключается в сериализации) Два ArrayLists для двух отдельных объектов. ArrayList1 (для object1) и ArrayList2 (для object2) Необходимо хранить оба файла в одном и том же файле, но, к сожалению, он не работает.
import java.io.Serializable;
public class Object1 implements Serializable {
public int num;
String name;
String id;
public BeanBagObject(int num,String, String name,String id){
this.num = num;
this.name = name;
this.id = id;
}
//get method
public int getNum(){return this.num;}
public String getName(){return this.name;}
public String getId(){return this.id;}
}
В файл также включено:
public static ObjectArrayList Object1List = new ObjectArrayList();
public static ObjectArrayList Object2List = new ObjectArrayList();
import java.io.Serializable;
public class Object2 implements Serializable {
public int num;
int TwoNumber;
String id;
public ReservationObject(int num,int TwoNumber,String id){
this.num = num;
this.TwoNumber = TwoNumber;
this.id = id;
}
//get method
public int getNum(){return this.num;}
public int getTwoNumber(){return this.TwoNumber;}
public String getID(){return this.id;}
}
public void saveStoreContents(String filename) throws IOException {
try{
FileOutputStream fos= new FileOutputStream(filename);
ObjectOutputStream oos= new ObjectOutputStream(fos);
oos.writeObject(Object1List);
oos.writeObject(Object2List);
oos.close();
fos.close();
}catch(IOException ioe){
ioe.printStackTrace();//Prints this throwable and its backtrace to the standard error stream.
}
}
public void loadStoreContents(String filename) throws IOException,
ClassNotFoundException {
ArrayList<String> arraylist= new ArrayList<String>();
try
{
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream ois = new ObjectInputStream(fis);
arraylist = (ArrayList) ois.readObject();
ois.close();
fis.close();
}catch(IOException ioe){
ioe.printStackTrace();
return;
}catch(ClassNotFoundException c){
System.out.println("Class not found");
c.printStackTrace();//Prints this throwable and its backtrace to the standard error stream.
return;
}
for(String str: arraylist){
System.out.println(str);
}
}
Кажется, что это нормально, но печатает объектный список с идентификатором, а не с фактическим содержимым, без понятия, почему: (((( Любая помощь будет очень высоко ценится, спасибо чел.)