有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带序列化的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) 个答案