带序列化的java If语句
我可以用我的对象的值写入文件,但是我想要这样的东西:如果(选项1)序列化这个对象,如果选项2,序列化其他对象,等等
我的代码可以工作,但不清楚如何对我进行序列化,如何可以选择序列化然后反序列化多个对象。简而言之,考虑菜单,如果选择选项,序列化,或者类似于选项2, 3等
我的工作代码片段如下:我正在使用Netbeans并通过dos运行它。这是一个简单的足球比赛菜单,试图保存和加载球队名称等
public class SerializeDemo
{
public void Serialize()
{
ClubInfo club = new ClubInfo();
club.teamName = "Arsenal";
club.stadium = "Emirates";
club.division = "Premier League";
club.SSN = 11122333;
club.stadiumCapacity = 60000;
try
{
FileOutputStream fileOut =
new FileOutputStream("C:/tmp/club.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(club);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in C:/tmp/club.ser");
}catch(IOException i)
{
i.printStackTrace();
}
}
} // end class SerializeDemo
然后,我可以通过选择“加载游戏”选项将其反序列化,它将成功地从文件中读取并显示对象数据。这是反序列化代码
import java.io.*;
public class DeserializeDemo
{
public void Deserialize()
{
ClubInfo club = null;
try
{
FileInputStream fileIn = new FileInputStream("C:/tmp/club.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
club = (ClubInfo) in.readObject();
in.close();
fileIn.close();
}catch(IOException i)
{
i.printStackTrace();
return;
}catch(ClassNotFoundException c)
{
System.out.println("Club class not found");
c.printStackTrace();
return;
}
System.out.println("Saved game loaded...");
System.out.println("Name: " + club.teamName);
System.out.println("Stadium: " + club.stadium);
System.out.println("Division: " + club.division);
// System.out.println("SSN: " + club.SSN);
System.out.println("Stadium Capacity: " + club.stadiumCapacity);
}
}
如何序列化多个对象?我曾考虑过使用一个对象数组,但后来我遇到了属于对象的字符串状态的问题
共 (0) 个答案