日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java基础----IO序列化Serializable

發(fā)布時(shí)間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础----IO序列化Serializable 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package com.henu.io; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /** java.io.ObjectOutputStream 類,將Java對(duì)象的原始數(shù)據(jù)類型寫出到文件,實(shí)現(xiàn)對(duì)象的持久存儲(chǔ)。* ObjectInputStream反序列化流,將之前使用ObjectOutputStream序列化的原始數(shù)據(jù)恢復(fù)為對(duì)象。 * * ?public ObjectOutputStream(OutputStream out): 創(chuàng)建一個(gè)指定OutputStream的ObjectOutputStream。* ?public ObjectInputStream(InputStream in): 創(chuàng)建一個(gè)指定InputStream的ObjectInputStream。* * ?一個(gè)對(duì)象要想序列化,必須滿足兩個(gè)條件:–該類必須實(shí)現(xiàn)java.io.Serializable 接口,Serializable 是一個(gè)標(biāo)記接口,不實(shí)現(xiàn)此接口的類將不會(huì)使任何狀態(tài)序列化或反序列化,會(huì)拋出NotSerializableException 。–該類的所有屬性必須是可序列化的。如果有一個(gè)屬性不需要可序列化的,則該屬性必須注明是瞬態(tài)的,使用transient 關(guān)鍵字修飾。* * –public final void writeObject (Object obj) : 將指定的對(duì)象寫出。* –public final Object readObject () : 讀取一個(gè)對(duì)象。* * 類實(shí)現(xiàn)了Serializable接口表示該類的對(duì)象可以序列化* 類中的屬性默認(rèn)都可以序列化,如果不想讓屬性序列化可以使用transient關(guān)鍵字修飾* 序列化:把對(duì)象轉(zhuǎn)換為二進(jìn)制* 反序列化:把二進(jìn)制轉(zhuǎn)換為對(duì)象*/ import java.io.Serializable;public class Demo01_序列化ObjectOutputStream {public static void main(String[] args) throws Exception, IOException {Student student = new Student("李孟冬",22,"alibaba");ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\IO文檔\\stu.txt"));ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\\\IO文檔\\\\stu.txt"));oos.writeObject(student);Student obj1 = (Student) ois.readObject();System.out.println(obj1);ois.close();oos.close();System.out.println("對(duì)象序列化完畢");}}class Student implements Serializable{private String name;private int age;private transient String password;public Student() {super();// TODO Auto-generated constructor stub}public Student(String name, int age, String password) {super();this.name = name;this.age = age;this.password = password;}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;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}} package com.henu.io;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** 1.將存有多個(gè)自定義對(duì)象的集合序列化操作,保存到list.txt文件中。2.反序列化list.txt ,并遍歷集合,打印對(duì)象信息。*/ public class Demo02_序列化練習(xí) {public static void main(String[] args) throws Exception {Student s1 = new Student("jack",22,"baidu");Student s2 = new Student("tom",23,"alibaba");Student s3 = new Student("rose",28,"huawei");List<Student> list = new ArrayList<>();list.add(s1);list.add(s2);list.add(s3);//序列化ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:/IO文檔/list.txt"));oos.writeObject(list);System.out.println("序列化完畢");//反序列化ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/IO文檔/list.txt"));List<Student> list2 = (List<Student>) ois.readObject();for (Student student : list) {System.out.println(student);}oos.close();ois.close();/** 輸出* 序列化完畢com.henu.io.Student@42a57993com.henu.io.Student@4554617ccom.henu.io.Student@1540e19d*/}} package com.henu.io;import java.io.Serializable;public class Student implements Serializable{private String name;private int age;private transient String password;public Student() {super();// TODO Auto-generated constructor stub}public Student(String name, int age, String password) {super();this.name = name;this.age = age;this.password = password;}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;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的java基础----IO序列化Serializable的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。