Java IO 中對象的序列化操做html
這是一個在IO中比較基礎的問題,可是由於不多用到,很容易遺忘,面試的時候可能會遇到,因此記錄到博客上,防止忘記java
其實代碼很簡單:主要是用到兩個類ObjectInputStream 和ObjectOutputStream 分別實現對類的讀取和寫入面試
注意的一點是:要序列化的類應該實現Serialiable接口,實際上是一個空的接口,包含寫入和讀取的測試程序代碼dom
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.UUID;
public class TestSerialized {
/**
* 把對象寫入文件
* @throws Exception
*/
public static void WriteObject(Object obj)throws Exception{
FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
ObjectOutputStream oos = new ObjectOutputStream(fis);
oos.writeObject(obj);
oos.close();
}
/**
* 從文件讀取對象
* @return
* @throws Exception
*/Android的App列表之拖拽ListView(上)測試
public static Object readObject() throws Exception {
FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));
ObjectInputStream oos = new ObjectInputStream(fis);
return oos.readObject();
}
public static void testWrite() throws Exception{
SerializedClass sc = new SerializedClass();
sc.setId(UUID.randomUUID().toString());
sc.setName("zhougege");
WriteObject(sc);
System.out.println("寫入的對象:");
System.out.println(sc.getId());
System.out.println(sc.getName());
}WiiU 理念之魂htm
public static void testRead() throws Exception{
Object obj = readObject();
SerializedClass sc = (SerializedClass)obj;
System.out.println("讀取到的對象:");
System.out.println(sc.getId());
System.out.println(sc.getName());
}
public static void main(String[] args) throws Exception {
testWrite();
testRead();
}
}
寫入對象的核心代碼對象
/**
* 把對象寫入文件
* @throws Exception
*/
public static void WriteObject(Object obj)throws Exception{
FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
ObjectOutputStream oos = new ObjectOutputStream(fis);
oos.writeObject(obj);
oos.close();
}blog
讀取對象的核心代碼接口
/**
* 從文件讀取對象
* @return
* @throws Exception
*/
public static Object readObject() throws Exception {
FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));
ObjectInputStream oos = new ObjectInputStream(fis);
return oos.readObject();
}get