Java中的對象流總結(jié)(必看篇)
Java中可以通過對象流將一個(gè)序列化的對象保存到硬盤中,或者硬盤中讀取一個(gè)對象。對象流的存儲(chǔ)和讀取包含以下幾點(diǎn)內(nèi)容:
1、所保存的對象必須實(shí)現(xiàn)Serializable接口。
2、 所保存的對象的屬性也必須實(shí)現(xiàn)Serializable接口。
3、 最好要給該對象提供一個(gè)版本號(hào),private static final long serialVersionId。
下面是一個(gè)對象流存儲(chǔ)和讀取一個(gè)對象的流程圖:

class Person implements Serializable {
//實(shí)現(xiàn)序列化接口,其中的String,int也都是實(shí)現(xiàn)了Serializable的,不然就會(huì)報(bào)錯(cuò)
private static final long serialVersionUID = 7072662597320618920L;
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
public class ObjectStreamTest {
private ObjectInputStream ips;
@Test
public void outStreamTest() throws Exception {
File file = new File("D:/person.txt");
Person p1 = new Person("hanking", 24);
Person p2 = new Person("Hust", 120);
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream ops = new ObjectOutputStream(fos);
ops.writeObject(p2);
ops.writeObject(p1);
ops.flush();
ops.close();
}
@Test
public void InStreamTest() throws Exception {
ips = new ObjectInputStream(new FileInputStream("D:/person.txt"));
Person p1 = (Person) ips.readObject();
System.out.println(":" + p1);
Person p2 = (Person) ips.readObject();
System.out.println(":" + p2);
ips.close();
}
}
以上這篇Java中的對象流總結(jié)(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot如何通過自定義注解實(shí)現(xiàn)日志打印詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot如何通過自定義注解實(shí)現(xiàn)日志打印的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
使用Java代碼實(shí)現(xiàn)Redis和數(shù)據(jù)庫數(shù)據(jù)同步
這篇文章主要介紹了使用Java代碼實(shí)現(xiàn)Redis和數(shù)據(jù)庫數(shù)據(jù)同步問題,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06
mybatis報(bào)錯(cuò)元素內(nèi)容必須由格式正確的字符數(shù)據(jù)或標(biāo)記組成異常的解決辦法
今天小編就為大家分享一篇關(guān)于mybatis查詢出錯(cuò)解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
PHP Laravel實(shí)現(xiàn)文件下載功能
本文重點(diǎn)給大家介紹Laravel實(shí)現(xiàn)文件下載功能的實(shí)例代碼,需要的朋友參考下吧2017-09-09
Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之二叉樹
今天給大家?guī)淼氖顷P(guān)于Java數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),文章圍繞著Java二叉樹展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機(jī)制及集成原理
這篇文章主要介紹了jcl與jul?log4j1?log4j2?logback的集成原理,Apache?Commons-logging?通用日志框架與日志系統(tǒng)的機(jī)制,有需要的朋友可以借鑒參考下2022-03-03
Spring Boot中使用JSR-303實(shí)現(xiàn)請求參數(shù)校驗(yàn)
這篇文章主要介紹了Spring Boot中使用JSR-303實(shí)現(xiàn)請求參數(shù)校驗(yàn),JSR-303校驗(yàn)我們一般都是對Java的實(shí)體類對象進(jìn)行校驗(yàn),主要檢驗(yàn)JSR-303是Java中的一個(gè)規(guī)范,用于實(shí)現(xiàn)請求參數(shù)校驗(yàn)在我們的實(shí)體類對象的屬性上,感興趣的朋友跟隨小編一起看看吧2023-10-10

