二级JAVA第六章辅导:对象串行化

文章作者 100test 发表时间 2007:04:06 21:25:30
来源 100Test.Com百考试题网


首先,谈一下串行化的好处:
(1)在网络中传送对象。
(2)在程序的运行期间将对象保存于文件,或者稍后在相同的应用程序中写入然后读取对象。

实现对象串行化有两个前提:
(1)要串行化的对象对应的类必须实现Serializable接口。
(2)要串行化的对象对应的类必须是公共的(public)。

在Java中,有两个流类支持对象串行化:ObjectOutputStream和ObjectInputStream。

在对象串行化过程中,如果类中有某些域不想被串行化,则用transient修饰这些域。

下面是一个例子:

Customer.java

1import java.io.*.
2
3public class Customer implements Serializable {
4 private String name, ID.
5 transient private String password.
6 private float balance.
7
8 public Customer(String name, String ID, String password, float balance) {
9 this.name = name.
10 this.ID = ID.
11 this.password = password.
12 this.balance = balance.
13 }

14
15 public String getName() {
16 return name.
17 }

18
19 public String getID() {
20 return ID.
21 }

22
23 public String getPassword() {
24 return password.
25 }

26
27 public float getBalance() {
28 return balance.
29 }

30}

31
32




ObjectIODemo.java

1import java.io.*.
2
3public class ObjectIODemo {
4 public static void main(String[] args) {
5 try {
6 ObjectOutputStream objectOut = new ObjectOutputStream
7 (new BufferedOutputStream(new FileOutputStream("object.bin"))).
8
9 Customer cust = new Customer("张三", "00001", "1234", 30000).
10 objectOut.writeObject(cust).
11 cust = new Customer("李四", "00002", "5678", 10000).
12 objectOut.writeObject(cust).
13 objectOut.close().
14
15 ObjectInputStream objectIn = new ObjectInputStream
16 (new BufferedInputStream(new FileInputStream("object.bin"))).
17
18 cust = (Customer)objectIn.readObject().
19 display(cust).
20
21 cust = (Customer)objectIn.readObject().
22 display(cust).
23
24 objectIn.close().
25 }

26 catch(NotSerializableException e) {
27 System.out.println(e.getMessage()).
28 }

29 catch(ClassNotFoundException e) {
30 System.out.println(e.getMessage()).
31 }

32 catch(IOException e) {
33 System.out.println(e.getMessage()).
34 }

35 }

36
37 private static void display(Customer cust) {
38 System.out.println("Name: " cust.getName()).
39 System.out.println("ID: " cust.getID()).
40 System.out.println("Password: " cust.getPassword()).
41 System.out.println("Balance: " cust.getBalance()).
42 }

43}

44


相关文章


二级JAVA第五章辅导:条件控制
二级JAVA第六章辅导:对象串行化
二级JAVA第五章辅导:基本语句
二级JAVA第五章辅导:循环语句
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛