Java IO學習筆記(五)對象流。本站提示廣大學習愛好者:(Java IO學習筆記(五)對象流)文章只能為提供參考,不一定能成為您想要的結果。以下是Java IO學習筆記(五)對象流正文
1、Object流:直接將Object寫入或讀出。
2、序列化:將Object直接轉化成字節流寫到硬盤或網絡上。
3、假如想把一個對象轉化成字節流,該對象的實體類必需得完成Serializable接口,Serializable接口是標志性接口,它並沒有任何辦法,只是用於標識該類可以被序列化。
4、transient關鍵字,用於修飾成員變量,表示該成員變量是通明的,與Serializable接口同用,表示序列化的時分不思索該成員變量。序列化時存的是該成員變量數據類型的默許值。
5、Externalizable接口是Serializable接口的子類,完成Serializable接口JDK會協助控制如何序列化的進程,而完成Externalizable接口就可以自己控制序列化的完成進程。
該接口有兩個辦法:readExternal(ObjectInput in);把對象經過ObjectInput 讀出去。
writeExternal(ObjectOutput out);把對象經過ObjectOutput 寫出去。
普通來說就讓JDK完成就好了,這個接口不常用。
練習小例子:
package test.io.object;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class ObjectStreamTest {
public static void main(String args[]){
FileOutputStream fos = null;
ObjectOutputStream oos = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fos = new FileOutputStream("E:/技術學習/java/test/Socket/objectTest.txt");
oos = new ObjectOutputStream(fos);
Stu s = new Stu();
s.school = "dd";
oos.writeObject(s);
fis = new FileInputStream("E:/技術學習/java/test/Socket/objectTest.txt");
ois = new ObjectInputStream(fis);
Stu s2 = (Stu) ois.readObject();
System.
out.print(s2.old + " " + s2.school + " " + s2.name + " " +s2.teacher);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Stu implements Serializable{
private static final long
serialVersionUID = 1L;
int old = 25;
String name = "bjh";
transient String teacher = "cj";
String school = "lgd";
}
運轉後果:
25 dd bjh null