第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

java - 如何在不覆蓋文件中寫入的數(shù)據(jù)的情況下將對(duì)象(非字符串類型)附加到現(xiàn)有文件中?

java - 如何在不覆蓋文件中寫入的數(shù)據(jù)的情況下將對(duì)象(非字符串類型)附加到現(xiàn)有文件中?

回首憶惘然 2021-10-13 15:42:25
在我的 java 代碼中,我想在創(chuàng)建它們的那一刻將按摩對(duì)象附加到文件中。當(dāng)我嘗試追加一個(gè)新對(duì)象時(shí),它會(huì)覆蓋文件中先前添加的數(shù)據(jù)。有人可以解釋一種將對(duì)象(不是字符串類型對(duì)象)一個(gè)接一個(gè)地附加到現(xiàn)有文件而不被覆蓋的方法嗎?對(duì)象的構(gòu)造函數(shù):public class savedEmail{    String email;    String subject;    String date;    public savedEmail(String email,String subject,String date){        this.email = email;        this.subject = subject;        this.date = date;    }}//The way which I tried to append the object to the file: class sentEmail{    public static void save(saveEmail O) throws IOException{ObjectOutputStream op = new ObjectOutputStream(new        FileOutputStream("saved.bin",true));        op.write(0);    }}
查看完整描述

2 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

我想解決這個(gè)問題的方法是,將所有對(duì)象放入一個(gè) ArrayList 并通過對(duì)象序列化將該 ArrayList 寫入文件。如果要向其中添加新對(duì)象,請(qǐng)通過反序列化將保存的 ArrayList 取回,然后附加新對(duì)象并將 ArrayList 放回文件。


查看完整回答
反對(duì) 回復(fù) 2021-10-13
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊

創(chuàng)建新的 ObjectOutputStream 時(shí),會(huì)寫入初始字節(jié)序列或標(biāo)頭。在的Java序列化規(guī)范所描述的那樣:

溪流:

魔法版內(nèi)容

因此,每次要追加時(shí)都創(chuàng)建一個(gè)新的 ObjectOutputStream 不是一種選擇。您將需要打開一個(gè)單一ObjectOuptutStream,并保持對(duì)它的引用。

順便說一句,op.write(0)(寫一個(gè)零)與op.write(O)(寫出引用在名稱為大寫字母 O 的變量中的對(duì)象)不同。這是O變量名稱的一個(gè)非常糟糕的選擇的原因之一??紤]email改為命名方法參數(shù)。


查看完整回答
反對(duì) 回復(fù) 2021-10-13
  • 2 回答
  • 0 關(guān)注
  • 313 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)