java笔记九:对象序列化与反序列化

  在java程序运行过程中,有许多的对象同时存在,香港服务器,网站空间,但是程序结束运行或者JVM停止运行时这些对象都会消失。如何将这些对象保存起来以便下一次再将这些对象读入内存呢?或者如何将某些对象通过网络传到另一端的java程序?实施对象的这种操作叫做对象的序列化(或者叫做持久化),香港服务器租用,重新读入内存叫做反序列化。

  基本数据类型的包装类和所有容器类都可以被序列化。用户自定义的类默认是不可以被序列化的。如果想要自己定义的类可以序列化就必须让这个类实现java.io.Serializable接口。

下面看一个Demo:

1 package com.serializable; java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.ObjectInputStream; 8 import java.io.ObjectOutputStream; 9 import java.io.Serializable;Point implements Serializable{ x; y;z; Point(int x,int y,int z) {16this.x = x;17this.y = y;18this.z = z;19 }20 @Override21public String toString() {22return “(” + x + “,” + y + “,” + z + “)”;23 }24 } ObjectSerializableDemo {main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {30String fileName = “F:\\shar\\test\\test7.txt”;ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName));33for (int i = 0; i < 10; i++) {34oos.writeObject(new Point(i,2*i,3*i));35 }36 oos.flush();37 oos.close();3839ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName));40for (int i = 0; i < 10; i++) {41Point p = (Point)ois.readObject();42System.out.println(p + ” “);43 }44 ois.close();45 }46 47 }快乐不是因为得到的多而是因为计较的少!

java笔记九:对象序列化与反序列化

相关文章:

你感兴趣的文章:

标签云: