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

admin2009-01-15  22

问题 请完成以下程序,首先由一个类Example2_3实现Serializable接口,并有三个成员变量,分别为int型、double型和String型,可以用toString的方法显示这三个成员变量。在main方法中创建这个Example2_3的持久对象,根据用户在命令行输入的三个参数来设定其中成员变量的值。然后,将这个对象写入名为TheSerial.data的文件,并显示成员变量。最后从文件TheSerial.data中读出三个成员变量并显示出来。

   注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
   import java.io.*;
   class TheSerial implements Serializable
   {
   private int intValue;
   private double doubleValue;
   private String string;
   TheSerial()
   {
           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 toString()
   {
           return("int="+intValue+"double="+doubleValue+" string="+string);
   }
   }
   public class Example2_3
   {
   public static void main(String argv[])
   {
           TheSerial e1 = new TheSerial();
           TheSerial e2;
           try
       {
           e1.setInt(Integer.parseInt(argv[0]));
           e1.setDouble(Double.parseDouble(argv[1]));
           e1.setString[argv[2]);
       }
       catch(Exception e)
       {
           e1.setString(e.getMessage{));
       }
       System.out.println(e1);
       try
       {
           FileOutputStream oS = new FileOutputStream("TheSerial.data");
           ObjectOutputStream oIS = 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,通过该类的实例对文件进行访问,然后创建一个ObJectOutput Stream对象,通过writeObject()方法来实现对象的序列化。第一个空就是使用writeObject()实现序列化。
反序列化过程中用FileInputStream对象建立读取文件的连接,并使用该对象创建一个 ObiectInputStream的实例,这个ObjectInput Stream实例的readObject()方法就可以实现对象的反序列化。第二个空就是使用readObject()实现反序列化。
转载请注明原文地址:https://kaotiyun.com/show/nmnp777K
0

最新回复(0)