java对象序列化可以将java对象以字节的形式存储起来,但是不存储类的方法,只存储对象的当前状态信息。序列化反序列化需要注意的几点:
1、需要序列化的java对象必须继承Serializable接口。
2、可序列化的类需要有不带参数的构造函数
3、当对象的成员变量是其他类B时,类B也需要继承Serializable接口
4、并不是所有的对象都可以进行序列化,如Thread、Socket对象不能序列化
序列化反序列化需要的流对象:
处理对象流:
java.io包有两个序列化对象的类。
ObjectOutputStream负责将对象写入字节流,
ObjectInputStream从字节流重构对象。
序列化:
File file = new File(path);
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myobject);
反序列化:
File file = new File(path);
FileIntputStream fos = new FileIntputStream(file);
ObjectInputStream ois=new ObjectInputStream(fos);
myobject=(MyObject)ois.readObject();
1、需要序列化的java对象必须继承Serializable接口。
2、可序列化的类需要有不带参数的构造函数
3、当对象的成员变量是其他类B时,类B也需要继承Serializable接口
4、并不是所有的对象都可以进行序列化,如Thread、Socket对象不能序列化
序列化反序列化需要的流对象:
处理对象流:
java.io包有两个序列化对象的类。
ObjectOutputStream负责将对象写入字节流,
ObjectInputStream从字节流重构对象。
序列化:
File file = new File(path);
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myobject);
反序列化:
File file = new File(path);
FileIntputStream fos = new FileIntputStream(file);
ObjectInputStream ois=new ObjectInputStream(fos);
myobject=(MyObject)ois.readObject();