<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ObjectInputStream類實現(xiàn)對象的反序列,ObjectOutputStream類實現(xiàn)對...

          共 3574字,需瀏覽 8分鐘

           ·

          2021-11-20 05:20

          點(diǎn)擊上方“Java進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注

          后臺回復(fù)“Java”即可獲贈Java學(xué)習(xí)資料

          春草明年綠,王孫歸不歸?

          大家好,我是Java進(jìn)階者。

          前言

          本文主要學(xué)習(xí)ObjectInputStream類實現(xiàn)對象的反序列,ObjectOutputStream類實現(xiàn)對象的序列化流,接下來小編帶大家一起來學(xué)習(xí)!


          一、 ObjectInputStream類

          1.ObjectInputStream是對象的反序列化流,它是InputStream類的子類。

          2.ObjectInputStream類的構(gòu)造方法

          public ObjectInputStream(InputStream in):創(chuàng)建指定的輸入流對象讀取ObjectInputStream。參數(shù)in表示指定的輸入流對象。

          例子:

          FileInputStream fs=new FileInputStream("test.txt");ObjectInputStream os=new ObjectInputStream(fs);

          3.使用ObjectInputStream類實現(xiàn)對象的反序列化例子

          import java.io.*;
          class Person implements Serializable{// 實現(xiàn)序列化接口private String id,name;private int age;//構(gòu)造方法public Person(String id,String name, int age) { this.id = id; this.name = name; this.age = age;}
          public String getId() { return id;}
          public void setId(String id) { this.id = id;}
          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 class P18{public static void main(String[] args) throws Exception {//創(chuàng)建文件輸入流對象,讀取指定的文件FileInputStream fs=new FileInputStream("text/test");//創(chuàng)建對象輸入流ObjectInputStream os=new ObjectInputStream(fs);//讀取Person對象Person p=(Person)os.readObject();System.out.println("讀取文本的數(shù)據(jù)后顯示:");System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge()); }}

          運(yùn)行的結(jié)果如下圖所示:

          27bdf3a13a6ba7d8029bf719e7911146.webp

          從上面的代碼中因為Person類中屬性的私有的,使用訪問器的方法set和get的方法,當(dāng)調(diào)用ObjectInputStream的readObject()方法把text目錄下的test的Person對象數(shù)據(jù)讀取出來,這個就是反序列化。


          二、ObjectOutputStream類

          1.ObjectOutputStream是對象的序列化流,它是OutputStream類的子類。

          2.ObjectOutputStream類的構(gòu)造方法

          public ObjectOutputStream(OutputStream out):創(chuàng)建指定的輸出流對象寫入ObjectOutputStream。參數(shù)out表示指定的輸出流對象。

          例子:

          FileOutputStream fs=new FileOutputStream("test.txt");ObjectOutputStream os=new ObjectOutputStream(fs);

          對象輸出流使用writeObject(Object obj)方法將一個對象obj寫入到一個文件,對象輸入流使用readObject()方法從源中讀取一個對象到程序中。

          3.使用ObjectOutputStream類實現(xiàn)對象的序列化例子

          import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.io.Serializable;
          public class Person implements Serializable{// 實現(xiàn)序列化接口private String id,name;private int age;//構(gòu)造方法public Person(String id,String name, int age) { this.id = id; this.name = name; this.age = age;}
          public String getId() { return id;}
          public void setId(String id) { this.id = id;}
          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 static void main(String[] args) throws IOException {//創(chuàng)建一個Person對象Person p=new Person("C01","進(jìn)階者",18);System.out.println("寫入文件前的數(shù)據(jù):");System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge());//創(chuàng)建文件輸出流對象,把數(shù)據(jù)寫入text目錄下的test.txt文件中FileOutputStream fs=new FileOutputStream("text/test.txt");//創(chuàng)建對象輸出流ObjectOutputStream os=new ObjectOutputStream(fs);os.writeObject(p); }}

          運(yùn)行的結(jié)果如下圖所示:

          019e213cbd4d6f3153c2812fee4343e3.webp

          從上面的代碼中,首先是對Person對象進(jìn)行實例化,它的id為c01,name為進(jìn)階者,年齡為18。當(dāng)調(diào)用ObjectOutputStream的writeObject()方法將Person對象寫入text目錄下的test.txt。這就實現(xiàn)了序列化!


          三、總結(jié)

          ????本文主要介紹了ObjectInputStream類、ObjectOutputStream類。ObjectInputStream類是對象的反序列化流,它是InputStream類的子類,介紹了它的構(gòu)造方法和方法,通過一個例子來學(xué)習(xí)使用ObjectInputStream類實現(xiàn)對象的反序列化。ObjectOutputStream類是是對象的序列化流,它是OutputStream類的子類,通過一個例子來學(xué)習(xí)使用ObjectOutputStream類實現(xiàn)對象的序列化。希望大家通過本文的學(xué)習(xí),對你有所幫助!

          ????我是Java進(jìn)階者,希望大家通過本文的學(xué)習(xí),對你有所幫助!歡迎大家加我微信,有問題可以隨時幫大家解決噢,交個朋友也好哇~

          -------------------?End?-------------------

          往期精彩文章推薦:

          eb5fdc5a11eb14a43d64db465efa5a5f.webp

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Java學(xué)習(xí)群請在后臺回復(fù)【入群

          萬水千山總是情,點(diǎn)個【在看】行不行

          瀏覽 44
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人欧美A | 久久亚洲影院 | 国产免费一区 | 午夜在线观看视频18 | 日本黄色录像 |