共計(jì) 939 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
實(shí)現(xiàn)對(duì)象的存儲(chǔ)和讀取可以通過(guò) Java 的序列化和反序列化來(lái)實(shí)現(xiàn)。下面是實(shí)現(xiàn)對(duì)象存儲(chǔ)和讀取的基本步驟:
- 創(chuàng)建一個(gè)類,并實(shí)現(xiàn)
Serializable
接口。這個(gè)接口是一個(gè)標(biāo)記接口,表示該類可以被序列化。
import java.io.Serializable;
public class MyClass implements Serializable {// 類的成員和方法
// ...
}
- 創(chuàng)建一個(gè)對(duì)象,并將其序列化到文件中。
// 創(chuàng)建對(duì)象
MyClass obj = new MyClass();
// 序列化對(duì)象到文件
try {FileOutputStream fileOut = new FileOutputStream("object.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
System.out.println(" 對(duì)象已存儲(chǔ)到文件中 ");
} catch (IOException e) {e.printStackTrace();
}
- 從文件中讀取對(duì)象并進(jìn)行反序列化。
// 從文件中讀取對(duì)象
try {FileInputStream fileIn = new FileInputStream("object.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
MyClass obj = (MyClass) in.readObject();
in.close();
fileIn.close();
System.out.println(" 對(duì)象已從文件中讀取 ");
} catch (IOException e) {e.printStackTrace();
} catch (ClassNotFoundException e) {e.printStackTrace();
}
在上述代碼中,MyClass
對(duì)象會(huì)被序列化到名為 object.ser
的文件中。然后,通過(guò)反序列化從該文件中讀取并重新創(chuàng)建對(duì)象。請(qǐng)注意,要使一個(gè)類可以被序列化,它必須實(shí)現(xiàn) Serializable
接口,并且所有非序列化的成員必須標(biāo)記為transient
。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完