首先大家进来第一个疑问肯定是“什么是序列化?为什么要使用序列化?怎么实现一个简单的序列化案例?”
1.序列化就是把对象以一种规范的二进制形式存在内存中,另一边以反序列化方式获取;
2那么为什么要使用序列化呢?不使用序列化的话,就没有一个规范,你就算存储了数据,别人也不知道以哪种规范去获取;所以序列化就是一种大家都认同的规范了;
3.接下来我们实现一个简单的序列化案例,只要会写“Hello World!!!”的人都可以实现这个案例!!!
1.首先建一个普通的java项目:
2.随便写一个名字,然后Finish
3.随便建一个java类;
复制下面的即可,看好了。这个类是实现了序列化的接口的
public class Demo01 implements Serializable{ public byte version = 100; public byte count = 0; private String name ; @Override public String toString() { return "Dome01 [version=" + version + ", count=" + count + ", name=" + name + "]"; } public byte getVersion() { return version; } public void setVersion(byte version) { this.version = version; } public byte getCount() { return count; } public void setCount(byte count) { this.count = count; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
4.继续新建一个类,写个main方法
复制即可,
public class Demo02 { public static void main(String args[]) throws IOException { //创建一个文件输出流,指定一个路径 FileOutputStream fos = new FileOutputStream("F:/temp.out"); ObjectOutputStream oos = new ObjectOutputStream(fos); Demo01 ts = new Demo01(); //随意设置几个值,方便测试 ts.setName("test2"); //输出,刷新,关流 oos.writeObject(ts); oos.flush(); oos.close(); } }
5.编写测试类,测试即可;测试步骤自行发挥!!!!!
public class Demo03 { public static void main(String args[]) throws Exception { //获取文件输入流,就是你刚刚指定的文件 FileInputStream fis = new FileInputStream("F:/temp.out"); ObjectInputStream oin = new ObjectInputStream(fis); Dome01 ts = (Dome01)oin.readObject(); //获取打印即可 System.out.println("version="+ts.version+ts.getName()); if(oin!=null){ oin.close(); } } }
6.是不是很简单,是不是不用想,案例就出来了!!!!还是需要自己都思考思考!!!