zoukankan      html  css  js  c++  java
  • Java学习笔记【十一、序列化】

    序列化的条件

    • 实现Serializable接口
    • 所有属性必须是可序列化的,或标记为transient(不做序列化)

    序列化-将对象输出为序列化文件

    ObjectOutputStream

    反序列化-将序列化结果读取为对象

    ObjectInputStream

        import java.io.FileInputStream;
        import java.io.FileNotFoundException;
        import java.io.FileOutputStream;
        import java.io.IOException;
        import java.io.ObjectInputStream;
        import java.io.ObjectOutputStream;
    
        public class InputOutputStream {
    
        public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	People p = new People();
    	p.name = "Tom";
    	p.age = 18;
    	p.sex = "female";
    	p.num = 12321;
    
    	String path = "E:/JavaFile/tempFile/p.ser";
    
    	try {
    		FileOutputStream fileOut = new FileOutputStream(path);
    		ObjectOutputStream out = new ObjectOutputStream(fileOut);
    		out.writeObject(p);
    		out.close();
    		fileOut.close();
    		System.out.println("Write complete");
    
    		People p2 = new People();
    		FileInputStream fileIn = new FileInputStream(path);
    		ObjectInputStream in = new ObjectInputStream(fileIn);
    		p2 = (People) in.readObject();
    		p2.Print();
    		in.close();
    		fileIn.close();
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    
        }
    
        }
    
    class People implements java.io.Serializable {
    String name;
    int age;
    String sex;
    transient int num;// 序列化后该属性未在序列化结果中,所以反序列化后该属性无值
    
    void Print() {
    	System.out.println("name:" + name + ",age:" + age + ",sex:" + sex + ",num:" + num);
    }
    }
  • 相关阅读:
    为什么JSP的内置对象不需要声明
    什么不能输?
    可采用两种方法得到一个EJB对象
    EJB
    J2EE之JPA
    Application、Activity Stack 和 Task的区别
    关于 android屏幕适配
    JSP 向 JavaScript 中传递数组
    Android 图片异步加载 加载网络图片
    Android 显示意图和隐式意图的区别
  • 原文地址:https://www.cnblogs.com/shanelau/p/6493244.html
Copyright © 2011-2022 走看看