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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ObjectOutputStream 和 ObjectInputStream的使用

發布時間:2025/6/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ObjectOutputStream 和 ObjectInputStream的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、看一下API文檔

ObjectOutputStream :

ObjectOutputStream 將 Java 對象的基本數據類型和圖形寫入 OutputStream。可以使用 ObjectInputStream 讀取(重構)對象。通過在流中使用文件可以實現對象的持久存儲。如果流是網絡套接字流,則可以在另一臺主機上或另一個進程中重構對象。

只能將支持 java.io.Serializable 接口的對象寫入流中。每個 serializable 對象的類都被編碼,編碼內容包括類名和類簽名、對象的字段值和數組值,以及從初始對象中引用的其他所有對象的閉包。

writeObject 方法用于將對象寫入流中。所有對象(包括 String 和數組)都可以通過 writeObject 寫入。可將多個對象或基元寫入流中。必須使用與寫入對象時相同的類型和順序從相應 ObjectInputstream 中讀回對象。

還可以使用 DataOutput 中的適當方法將基本數據類型寫入流中。還可以使用 writeUTF 方法寫入字符串。

對象的默認序列化機制寫入的內容是:對象的類,類簽名,以及非瞬態和非靜態字段的值。其他對象的引用(瞬態和靜態字段除外)也會導致寫入那些對象。可使用引用共享機制對單個對象的多個引用進行編碼,這樣即可將對象的圖形恢復為最初寫入它們時的形狀。


ObjectInputStream :

ObjectInputStream 對以前使用 ObjectOutputStream 寫入的基本數據和對象進行反序列化。

ObjectOutputStream 和 ObjectInputStream 分別與 FileOutputStream 和 FileInputStream 一起使用時,可以為應用程序提供對對象圖形的持久存儲。ObjectInputStream 用于恢復那些以前序列化的對象。其他用途包括使用套接字流在主機之間傳遞對象,或者用于編組和解組遠程通信系統中的實參和形參。

ObjectInputStream 確保從流創建的圖形中所有對象的類型與 Java 虛擬機中顯示的類相匹配。使用標準機制按需加載類。

只有支持 java.io.Serializable 或 java.io.Externalizable 接口的對象才能從流讀取。?


二、案例說明

下面以一個例子來說明:

首先定義一個學生類,主要用于后面的封裝。

//ObjectInputStream與ObjectOutputStream類所讀寫的對象必須實現Serializable接口,對象中的transient和static類型成員變量不會被讀取和寫入public class Student implements Serializable {private static final long serialVersionUID = -187877186941003078L;String name;int id;transient int age; // transient 瞬時的,不持久化. 此處若把transient加上,就可以單獨不對age進行持久化操作transient int ageString department;public Student(String name, int id, int age, String department) {this.age = age;this.department = department;this.id = id;this.name = name;}@Overridepublic String toString() {return "Student [name=" + name + ", id=" + id + ", age=" + age+ ", department=" + department + "]";}}


然后把serializtion寫上就可以了。

//對象輸入輸出流,對象持久化操作,字節流的子類 public class Serializtion {public static void main(String[] args) throws IOException {Student s1 = new Student("張三", 1, 20, "數據結構");Student s2 = new Student("李四", 2, 19, "網絡");List<Student> list=new ArrayList<Student>();list.add( s1);list.add(s2);/*ObjectOutputStream 和 ObjectInputStream 分別與 FileOutputStream 和FileInputStream 一起使用時,可以為應用程序提供對對象圖形的持久存儲。*/// 將學生信息封裝到student.txt中// 創建一個向 student.txt 的文件中寫入數據的文件輸出流。FileOutputStream fout = new FileOutputStream("student2.txt");//ObjectOutputStream 將 Java 對象的基本數據類型和圖形寫入 OutputStream。可以使用 ObjectInputStream 讀取(重構)對象。ObjectOutputStream out = new ObjectOutputStream(fout);//writeObject 方法負責寫入特定類的對象狀態,以便相應的 readObject 方法可以恢復它。out.writeObject(list);//FileInputStream?類從文件系統中的一個文件中獲取輸入字節。FileInputStream fin = new FileInputStream("student2.txt");//創建從指定 InputStream 讀取的 ObjectInputStream。從流讀取序列化頭部并予以驗證。ObjectInputStream in = new ObjectInputStream(fin); // 捕獲異常try {/* readObject 方法為類重寫默認的反序列化readObject 方法用于從流讀取對象。應該使用 Java 的安全強制轉換來獲取所需的類型。在 Java 中,字符串和數組都是對象,所以在序列化期間將其視為對象。讀取時,需要將其強制轉換為期望的類型。*/List<Student> l= (List<Student>) in.readObject();for( Student s: l){System.out.println( s );}} catch (ClassNotFoundException e) {e.printStackTrace();}// 關閉流out.close();in.close();} }

最后會輸出:
name:張三id:1age:20department:數據結構
name:李四id:2age:19department:網絡

總結

以上是生活随笔為你收集整理的ObjectOutputStream 和 ObjectInputStream的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性欧美一级 | 欧美精品一区二区三区蜜臀 | 麻豆精品免费观看 | 亚洲国产精品免费视频 | 日韩精品国产一区 | 欧美日韩激情在线一区二区三区 | 日本四虎影院 | 亚洲一区二区伦理 | 欧美极品少妇xxxxⅹ免费视频 | 邪恶久久 | 人成在线视频 | 六月丁香综合 | 国产91高清| www.热久久 | 国产乱人乱偷精品视频 | 深爱五月综合网 | 日本少妇bbb| 色狗网站| 无码人妻精品一区二区三区温州 | 日本免费一区二区三区四区 | 久久午夜电影 | 日韩在线观看视频一区二区 | 国产情侣呻吟对白高潮 | 日韩午夜一区 | 欧美乱妇视频 | 精品成人一区二区三区久久精品 | 97性视频 | 毛片内射久久久一区 | 亚洲二区在线视频 | 久久最新精品 | 女人被狂躁c到高潮喷水电影 | 二级黄色录像 | 伊人avav | 国产精品探花视频 | 亚洲欧洲在线观看 | 好大好爽视频 | 操你妹影院 | 日本黄网免费 | 国产毛片久久久久久 | 美女免费福利视频 | 欧美日韩一区二区三区四区五区 | 一级免费在线 | 合欢视频污 | 人人夜| 国产麻豆成人精品av | 久久大尺度 | 欧美日韩在线观看成人 | 91久| 浪潮av色 | 日韩看片 | 成人精品一区二区三区电影黑人 | 久操视频免费观看 | 中文在线观看视频 | 天堂av一区 | 女厕厕露p撒尿八个少妇 | 嫩草伊人久久精品少妇av | 秘密基地电影免费版观看国语 | 涩里番在线观看 | 波多野结衣av在线观看 | 看一级黄色大片 | 乱色专区 | 日本黄色三级视频 | 亚洲欧美一区二区三区不卡 | 亚洲视频网站在线观看 | 台湾一级视频 | 麻豆av影视 | 波多野吉衣久久 | 日韩免费观看av | 久久国产精品影视 | 国产亚洲系列 | 欧美色吊丝 | 国产9区| 欧美久久久 | 婷婷激情图片 | 亚洲女则毛耸耸bbw 边吃奶边添下面好爽 | 欧美日韩国产综合网 | 欲色网站 | 黄网站在线观看 | 久久夜夜夜 | 亚洲精品高清在线观看 | 看黄网站在线 | 国产一二区视频 | 亚洲丝袜在线观看 | 亚洲一二三在线 | 亚洲情趣 | 蜜臀国产AV天堂久久无码蜜臀 | 欧美日韩一二区 | 国产精品一区在线免费观看 | 综合久久国产 | 国产精品丝袜 | 国产第一页精品 | 欧美一区二区最爽乱淫视频免费看 | 欧美www| www.一区| 日本免费在线播放 | 国产a级片免费看 | 黄色靠逼视频 | 日韩专区第一页 | 成人在线视频在线观看 |