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

题目

请完成以下程序,首先由一个类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 S = new FileOutputStream("TheSerial.data");

ObjectOutputStream IS = new ObjectOutputStream(oS);

______;

}

catch(IOException ioException)

{

System.out.println(ioException.getMessage());

}

try

{

FileInputStream iS = new FileInputStream("TheSerial. data");

ObjectInputStream IS = new ObjectInputStream(iS);

______

System.out.println(e2);

}

catch(IOException ioException)

{

System.out.println(ioException.getMessage());

}

catch(ClassNotFoundException cnfException)

{

System.out.println(cnfException.getMessage());

}

}

}


相似考题

1.请完成程序,首先由一个类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 S=new FileOutputStream("TheSerial.data");ObjectOutputStream OS=new ObjectOutputStream(oS);______;}catch(IOException ioException){System.out.println (ioException.getMessage ());}try{FileInputStream iS=new FileInputStream("TheSerial.data");ObjectInputStream IS=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()
①oOS.writeObject(e1) ②e2=(TheSerial)oIS.readObject() 解析:本题主要考查串行化相关的方法和实现。解题中首先要掌握串行化的基本过程和反串行化的过程。串行化过程首先要创建一个输出流FileOutputStream,通过该类的实例对文件进行访问,然后创建一个ObJectOutput Stream对象,通过writeObject()方法来实现对象的序列化。第一个空就是使用writeObject()实现序列化。
反序列化过程中用FileInputStream对象建立读取文件的连接,并使用该对象创建一个 ObiectInputStream的实例,这个ObjectInput Stream实例的readObject()方法就可以实现对象的反序列化。第二个空就是使用readObject()实现反序列化。
更多“ 请完成以下程序,首先由一个类Example2_3实现Serializable接口,并有三个成员变量,分别为int型、double型和String型,可以用toString的方法显示这三个成员变量。在main方法中”相关问题
  • 第1题:

    5. 一个具体类实现接口时,需要重写接口中的() A: 成员变量 B: 局部变量 C: 成员方法 D: 构造方法

    A.A B C D

    B.A B C D

    C.A B C D

    D.A B C D


    成员方法

  • 第2题:

    186、系统提供的默认拷贝构造函数实现的是“浅拷贝”,下列关于浅拷贝的说法中正确的是()。

    A.当一个类中有指针成员变量时,浅拷贝有可能会导致一片内存被重复释放

    B.当一个类中有指针成员变量时,浅拷贝有可能导致一个对象中保存的数据不正确

    C.如果一个类中只有int型和double型的成员变量,则浅拷贝不会出现任何问题

    D.如果一个类中有一个成员变量是char型数组,则使用浅拷贝会存在问题


    当一个类中有指针成员变量时,浅拷贝有可能会导致一片内存被重复释放;当一个类中有指针成员变量时,浅拷贝有可能导致一个对象中保存的数据不正确;如果一个类中只有int型和double型的成员变量,则浅拷贝不会出现任何问题

  • 第3题:

    下列关于单目运算符++,叙述正确的是

    A.它们的运算对象可以是任何变量和常量

    B.它们的运算对象可以是char型和int型变量,但不能是float型变量

    C.它们的运算对象可以是int型变量,但不能是double型和float型变量

    D.它们的运算对象可以是char型,int型,float型和double型变量


    它们的运算对象可以是 char 型, int 型, float 型和 double 型变量

  • 第4题:

    1、一个具体类实现接口时,需要重写接口中的?()

    A.成员变量

    B.局部变量

    C.成员方法

    D.构造方法


    成员方法

  • 第5题:

    4、一个具体类实现接口时,需要重写接口中的?

    A.成员变量

    B.局部变量

    C.成员方法

    D.构造方法


    成员方法