对象序列化
對(duì)象序列化就是把一個(gè)對(duì)象變?yōu)槎M(jìn)制的數(shù)據(jù)流的一種方法。
通過對(duì)象序列化可以方便地實(shí)現(xiàn)對(duì)象的傳輸或存儲(chǔ)。
?
如果一個(gè)類的對(duì)象想被序列化,則對(duì)象所在的類必須實(shí)現(xiàn)java.io.Serializable接口
//類名:Person_3 //屬性: //方法: class Person_3 implements Serializable{ //此類的對(duì)象可以被序列化private String name;private int age;public Person_3(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic String toString() {return "姓名:" + name + ", 年齡:" + age;}}?此類的對(duì)象是可以經(jīng)過二進(jìn)制數(shù)據(jù)流進(jìn)行傳輸?shù)?/p>
如果要完成對(duì)象的輸入或者輸出,還必須依靠對(duì)象輸出流(ObjectOutputStream)和對(duì)象輸入流(ObjectInputStream).
使用對(duì)象輸出流輸出序列化對(duì)象的步驟有時(shí)也稱為序列化
而使用對(duì)象輸入流讀入對(duì)象的過程有時(shí)也稱為反序列化
?
<1>對(duì)象輸出流ObjectOutputStream
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.Serializable;//================================================= // File Name : Serializable_demo //------------------------------------------------------------------------------ // Author : Common//類名:Person_3 //屬性: //方法: class Person_3 implements Serializable{ //此類的對(duì)象可以被序列化private String name;private int age;public Person_3(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic String toString() {return "姓名:" + name + ", 年齡:" + age;}}//主類 //Function : Serializable_demo; public class Serializable_demo {public static void main(String[] args) throws Exception {// TODO 自動(dòng)生成的方法存根File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路徑ObjectOutputStream oos = null;OutputStream out = new FileOutputStream(f); //文件輸出流oos = new ObjectOutputStream(out); //為對(duì)象輸出流實(shí)例化oos.writeObject(new Person_3("張三", 30));oos.close();}}?
<2>對(duì)象輸出流ObjectInputStream
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.Serializable;//================================================= // File Name : Serializable_demo //------------------------------------------------------------------------------ // Author : Common//類名:Person_3 //屬性: //方法: class Person_3 implements Serializable{ //此類的對(duì)象可以被序列化private String name;private int age;public Person_3(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic String toString() {return "姓名:" + name + ", 年齡:" + age;}}//主類 //Function : Serializable_demo; public class Serializable_demo {public static void main(String[] args) throws Exception {// TODO 自動(dòng)生成的方法存根File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路徑ObjectInputStream ois = null;InputStream input = new FileInputStream(f); //文件輸入流ois = new ObjectInputStream(input); //為對(duì)象輸入流實(shí)例化Object obj = ois.readObject(); //讀取對(duì)象ois.close();System.out.println(obj);}}?
總結(jié)
- 上一篇: ViewPager详解(一)——View
- 下一篇: ElasticSearch 2 (21)