请完成程序,首先由一个类simple实现Serializable接口,并有三个成员变量,分别为int型、double型和String型,可以用toString的方法显示这三个成员变量。在main方法中创建这个simple的持久对象,根据用户在命令行输入的三

admin2009-12-22  85

问题 请完成程序,首先由一个类simple实现Serializable接口,并有三个成员变量,分别为int型、double型和String型,可以用toString的方法显示这三个成员变量。在main方法中创建这个simple的持久对象,根据用户在命令行输入的三个参数来设定其中成员变量的值。然后,将这个对象写入名为TheSerial.data的文件中,并显示成员变量。最后从文件TheSerial.data中读出三个成员变量并显示出来。
   注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。
   import java.io.*;
   class TheSerial implements Serializable
   {
      private int intvalue;
      private double doublevalue;
      private String string;
      The Serial ()
      {
         intvalue=123;
         doublevalue=12.34;
         string="Serialize Test";
      }
      public void setDouble(double d)
      {
         doublevalue=d;
      }
      public void setInt(int i)
      {
         intvalue=i;
      }
      public void setString(String s)
      {
         string=s;
      }
      public String to String()
      {
         return("int="+intvalue+" double="+doublevalue+" string="+string);
      }
   }
   public class simple
   {
      public static void main(String[] args)
      {
         The Serial e1=new TheSerial();
         TheSerial e2;
         try
         {
            e1.setInt(Integer.parseInt(args[0]));
            e1.setDouble(Double.parseDouble(args[1]));
            e1.setString(args[2]);
         }
         catch(Exception e)
         {         
            e1.setString(e.getMessage());
         }
         System.out.println(e1);
         try
         {
            FileOutputStream oS=new FileOutputStream("TheSerial.data");
            ObjectOutputStream oOS=new ObjectOutputStream(oS);
            ______;
         }
         catch(IOException ioException)
         {
            System.out.println (ioException.getMessage ());
         }
         try
         {
            FileInputStream iS=new FileInputStream("TheSerial.data");
            ObjectInputStream oIS=new ObjectInputStream(iS);
            ______;
            System.out.println(e2);
         }
         catch(IOException ioException)
         {
            System.out.println(ioException.getMessage());
         }
         catch(ClassNotFoundException cnfException)
         {
            System.out.println(cnfException.getMessage());
         }
      }
   }

选项

答案oOs.writeObject(e1) e2=(TheSerial)oIS.readObject()

解析 本题考查知识点:串行化要领和目的、串行化方法、基于文本的应用。解题思路:本题主要考查串行化相关的方法和实现。解题中首先要掌握串行化的基本过程和反串行化的过程。串行化过程首先要创建一个FileOutputStream,通过该类的实例对文件进行访问,然后创建一个ObjectOutputStream对象,通过writeObject()方法来实现对象的序列化。第1个空就是使用writeObject()实现序列化。反序列化过程中用FileInputStream对象建立读取文件的连接,并使用该对象创建一个ObjectInputSream实例的readObject()方法就可以实现对象的反序列化。第2个空就是使用readObject()实现反序列化。
转载请注明原文地址:https://jikaoti.com/ti/CQb0FFFM
0

最新回复(0)