簡體   English   中英

使用DataOutput / InputStream管理文件字節

[英]Managing file bytes with DataOutput/InputStream

我有一個程序,它將經歷並創建多個不同的類實例。 我想使用DataOutputStream將每個實例的詳細信息寫入文件中(這是一項必要的練習,稍后我會介紹其他方法),但問題是我注意到,每當有一個新實例時,DataOutputStream就會覆蓋文件創建和編寫。 我的第一個想法是每次編寫新實例時,首先使用DataInputStream獲取文件中的內容,將其保存,然后用新實例重寫它。 這似乎會使它變得非常混亂。 這樣的最佳做法是什么? 提前致謝。

編輯:我將嘗試並更具體地說明我要在這里做什么。 當我將要寫入文件的類時,首先,我將使用dataInputStream.readFully來獲取文件中的所有內容。 我的理解是,將文件中的所有字節存儲在一個數組中。 我想將此與類實例進行比較,如果該實例與文件中已有的內容相匹配,則不要將此特定實例(因為它已經存在)輸出到文件中。 否則,附加到文件。

打開文件進行寫入時請使用FileOutputStream(File file,boolean append)構造函數。 例如:

File f = new File("C:\data.txt");
FileOutputStream fos = new FileOutputStream(f, true); // open file for appending
DataOutputStream dos = new DataOutputStream(fos);
// anything written to dos after this point will be appended

如果您只需要序列化對象,我強烈建議您使用JAXB或其他序列化/封送處理API,而不要浪費時間。 您可能會節省大量時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM