程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> ObjectOutputStream把對象寫入文件,可以用ObjectInputStream從

ObjectOutputStream把對象寫入文件,可以用ObjectInputStream從

編輯:關於JAVA
 

今天看書學了個貌似很牛逼的東西,可以用ObjectOutputStream把對象寫入文件,可以用ObjectInputStream從文件讀取對象。

作為菜鳥,我淺顯的認為,這是個非常有用的功能。比如,打開一個應用程序,它有窗口,必然是個對象,窗口的位置,大小,還有內部控件的擺放位置,肯定是在對象中由成員屬性來設置的,如果在關閉程序之前,將這個對象寫入文件,當下次再打開這個軟件的時候,讀取這個文件中的對象,這樣,就記錄了用戶的個人習慣,是一個不錯的功能。當然,還可能通過改注冊表什麼的來實現這樣的機制。有些習慣還可以直接存儲到服務器的數據庫上,這些都是可以的。

這裡,把代碼再敲一敲,復習鞏固一下。

 

先寫一個最常用的Employee類,它必須實現一個Serializable接口,才能被序列化。代碼如下:

class Employee implements Serializable
{
    private String name;
    private double salary;
    
    public Employee(String aName, double aSalary)
    {
        this.name = aName;
        this.salary = aSalary;
    }
    
    public String toString()
    {
        return "name = " + this.name + " salary = " + this.salary;
    }
}

 

接下來主函數裡寫上調試的代碼,代碼如下:

try {
  //構造兩個對象 Employee e1 = new Employee("kross", 123); Employee e2 = new Employee("ghost", 567.55);
  //打開一個對象輸出流 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.txt"));

  //把兩個對象一次寫入 out.writeObject(e1); out.writeObject(e2);
  //打開一個對象輸入流 ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.txt"));
  //通過輸入流把讀到的對象傳入e3 Employee e3 = (Employee) in.readObject();

  //調用下toString()方法 System.out.println(e3.toString());  //結果:name = kross salary = 123.0 } catch(IOException e) { }
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved