黑馬程式員——Java基礎——IO流(三)—序列流、管道流、RandomAccessFile類、操作基礎資料型別 (Elementary Data Type)的流對象、運算元組和字串、字元編碼

來源:互聯網
上載者:User

標籤:

 

第一講  對象序列化(持久化)

一、概述:就是把對象封存在硬碟,可以保持資料;關鍵類:ObjectInputStream和ObjectOutpurStream

二、

關鍵字:ObjectOutputStream:方法有writerObject()讀取          ObjectInputStream     方法有readObject()      被序列化的對象需要    implements Serializable
關於被序列化的類需要實現Serializable
它等於一個撮,標識用的,改變類裡面的語句就變了。如果想固定一個撮,可以:
public static final long serialVersionUId=42L;//給他固定一個撮
1、寫入流對象
  使用writerObject(Object obj)方法,將對象作為參數傳入
2、讀取流對象
  適應readObject(Object obj)方法,方法
註:被static和transient修飾後不能被序列化儲存
 1 /*一下主要為了示範如何對象序列化 2  * 關鍵字:ObjectOutputStream:方法有writerObject()讀取 3  *         ObjectInputStream     方法有readObject() 4  *     被序列化的對象需要    implements Serializable 5  *  6  */ 7 import java.io.*; 8 public class ObjectStreamDemo { 9     public static void main(String[] args) throws IOException,ClassNotFoundException{10         11         Person p=new Person("水音",25,"kr");12         13         File f=new File("D:\\sy.txt");14                 15         writeObj(p,f);16         readObj(f);17     }18     19     private static void writeObj(Person p, File f) {20         ObjectOutputStream oos=null;21         try {22             oos=new ObjectOutputStream(new FileOutputStream(f));23             oos.writeObject(p);24         } catch (IOException e) {25             throw new RuntimeException("對象寫入失敗");26         }27         finally{28             try {29                 if(oos!=null)30                     oos.close();31             } catch (Exception e2) {32                 throw new RuntimeException("關流失敗");33             }            34         }35     }36 //讀取37     private static void readObj(File f) {38         ObjectInputStream ois=null;39         try {40             ois=new ObjectInputStream(new FileInputStream(f));41             Person p=(Person)ois.readObject();42             System.out.println(p);43         } catch (Exception e) {44             // TODO: handle exception45         }46         finally{47             try {48                 if(ois!=null)49                     ois.close();50             } catch (Exception e3) {51                 throw new RuntimeException("關流失敗");52             }            53         }54         55     }56     //    視頻讀取57     public static void readObj()throws IOException, ClassNotFoundException{        58         ObjectInputStream ois=59                 new ObjectInputStream(new FileInputStream("D:\\sy.txt"));60         Person p=(Person)ois.readObject();61         System.out.println(p);62         ois.close();63     }64     65 //    視頻方法儲存66     public static void writeObj()throws IOException{67             68         ObjectOutputStream oos=69                 new ObjectOutputStream(new FileOutputStream("D:\\sy.txt"));70         oos.writeObject(new Person("水音",24,"kr"));71         oos.writeObject(new Person("水音",25));72         oos.close();73     }74 }75 76 //建立類77 class Person implements Serializable{//必須實現這個才能被序列化78     public static final long serialVersionUId=42L;//給他固定一個撮79     80     private String name;81     transient int age;//使用transient後就不能被序列化82     static String country="cn";//靜態也不能序列化83     Person(String name,int age,String country){84         this.name=name;85         this.age=age;86         this.country=country;87     }88     public String toString(){89         return name+"="+age+"="+country;90     }    91 }

 

黑馬程式員——Java基礎——IO流(三)—序列流、管道流、RandomAccessFile類、操作基礎資料型別 (Elementary Data Type)的流對象、運算元組和字串、字元編碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.