什么是 Java 的序列化,如何实现 Java 的序列化?
对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序。从字节流创建对象的相反的过程称为反序列化。而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。序列化是为了解决在对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现 Serializable 接口,该接口没有需要实现的方法,只是用于标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream 对象,接着使用 ObjectOutputStream 对象的 writeObject(Object obj) 方法可以将参数为 obj 的对象写出,要恢复的话则使用输入流。
评论(4)
import java.io.*;
class Student2 implements Serializable
{
private static final long serialVersionUID = 1L;
private String name=”李青”;
private int id=6;
public String getname()
{
return name;
}
public int getid()
{
return id;
}
}
public class praxuliehua {
public void Serialization()//序列化
{
try
{
FileOutputStream f=new FileOutputStream(“D:/eclipse//test2.txt”);
ObjectOutputStream oos=new ObjectOutputStream(f);
Student2 stu=new Student2();
oos.writeObject(stu);
System.out.println(“序列化成功!”);
oos.flush();
oos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void DeSerialization()//反序列化
{
try
{
FileInputStream f=new FileInputStream(“D:/eclipse//test2.txt”);
ObjectInputStream oos=new ObjectInputStream(f);
Student2 stu=(Student2)oos.readObject();
System.out.println(stu.getid()+” “+stu.getname());
oos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
praxuliehua p=new praxuliehua();
p.Serialization();
p.DeSerialization();
}
}
这是啥?
序列化和反序列化呀,写复杂了点^_^
public class Demo {
public static void main(String[] args) {
ObjectOutputStream oos;
ObjectInputStream ois;
try {
oos = new ObjectOutputStream(new FileOutputStream(“d:/a.txt”));
ois = new ObjectInputStream(new FileInputStream(“d:/a.txt”));
// 序列化
oos.writeObject(new User());
// 反序列化
Object user = ois.readObject();
System.out.println(user);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class User implements Serializable{
private String name = “zhangsan”;
@Override
public String toString() {
return name;
}
}