您的位置:首页 > 其它

对象的序列化

2016-05-26 19:41 232 查看
序列化是一种用来处理对象流的机制,所谓对象流就是将对象的内容流化,可以对流化的**对象进行读写操作**,也可以将流化后的对象传输于网络之间.
序列化的实现:implements Serializable (只是为了标注该对象可被序列化)


实体类:

import java.io.Serializable;

public class Student implements Serializable{
private String name;
private transient int age;//transient 修饰的属性 默认不会进行序列化
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}


读写操作

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 StuTest {

public static void main(String[] args) {
writeObj();
readObj();
}

public static void writeObj() {
Student stu = new Student("张三", 20);
ObjectOutputStream oos = null;

try {
oos = new ObjectOutputStream(new FileOutputStream("E:\\obj.dat"));

oos.writeObject(stu);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
System.out.println("write ok");
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void readObj() {
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(new FileInputStream("E:\\obj.dat"));
Student stu = (Student) ois.readObject();
System.out.println(stu);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: