打印本文 打印本文  关闭窗口 关闭窗口  
二级JAVA第六章辅导:Java串行化
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:42:17  文章录入:杜斌  责任编辑:杜斌

1. 串行化例子一
ObjectInputStream和ObjectOutputStream。

public class SerializationDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            Vector list;

            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    System.in));
            System.out.print("Checking for previous serialized list");

            try {
                FileInputStream fin = new FileInputStream("list.out");

                ObjectInputStream oin = new ObjectInputStream(fin);

                try {
                    Object obj = oin.readObject();
                    list = (Vector) obj;

                } catch (ClassCastException e) {
                    // TODO: handle exception
                    list = new Vector();
                } catch (ClassNotFoundException e){
                    list = new  Vector();
                }
                fin.close();

            } catch (FileNotFoundException e) {
                // TODO: handle exception
                list = new Vector();
            }
            
            for (;;){
                System.out.println("Menu :-");
                System.out.println("1.. Add item");
                System.out.println("2.. Delete item");
                System.out.println("3.. List items");
                System.out.println("4.. Save and quit");
                System.out.println("Choice");
               
                String response = reader.readLine();
                int choice = Integer.parseInt(response);
               
                switch (choice) {
                case 1:
                    System.out.print("Enter item : ");
                    String item = reader.readLine();
                    list.addElement(item);


                    break;
                case 2:
                    System.out.print("Enter item : ");
                    String deadItem = reader.readLine();
                    list.removeElement(deadItem);
                    break;
                case 3:
                    for (Enumeration e = list.elements(); e.hasMoreElements(); ){
                        System.out.println(e.nextElement());
                    }
                    break;   
                case 4:
                    System.out.println("Saving list");
                    FileOutputStream fout = new FileOutputStream("list.out");
                    ObjectOutputStream oout = new ObjectOutputStream(fout);
                    oout.writeObject(list);
                    fout.close();
                    System.exit(0);
                    break;
               
                default:
                    break;
                }
            }
        } catch (IOException e) {
            // TODO: handle exception
            System.out.print("I/O error.");
        }
    }

}
 
2.用transient声明需要保密的变量。
在串行化过程中,忽略此类变量。
实现java.io.Serializable 接口。

打印本文 打印本文  关闭窗口 关闭窗口