打印本文 关闭窗口 |
|
| 二级JAVA第六章辅导:对象串行化 | |
| 作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:42:16 文章录入:杜斌 责任编辑:杜斌 | |
|
|
|
|
首先,谈一下串行化的好处: 实现对象串行化有两个前提: 在Java中,有两个流类支持对象串行化:ObjectOutputStream和ObjectInputStream。 在对象串行化过程中,如果类中有某些域不想被串行化,则用transient修饰这些域。 下面是一个例子: import java.io.*;2 ![]() 3 ![]() public 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
import java.io.*;2 ![]() 3 ![]() public class ObjectIODemo {4 ![]() public static void main(String[] args) {5 ![]() try {6 ObjectOutputStream objectOut = new ObjectOutputStream7 (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 ObjectInputStream16 (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
|
|
打印本文 关闭窗口 |