首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DataOutput/InputStream管理文件字节

使用DataOutput/InputStream管理文件字节
EN

Stack Overflow用户
提问于 2013-05-02 05:47:39
回答 1查看 114关注 0票数 0

我有一个程序,将通过并创建多个不同的类实例。我想使用DataOutputStream将每个实例的详细信息写到一个文件中(这是一个必要的练习,稍后我将研究其他实现方法),但问题是我注意到每次创建和写入新实例时,DataOutputStream都会覆盖该文件。我的第一个想法是,每次编写一个新实例时,首先使用DataInputStream获取文件中的内容,保存它,然后用新实例重写它。这似乎很快就会让人感到困惑。对于这样的事情,什么是最佳实践?提前谢谢。

编辑:我将尝试更具体地说明我在这里要做的事情。当我获取要写入文件的类时,首先我将使用dataInputStream.readFully来获取文件中的所有内容。我的理解是获取文件中的所有字节并将它们存储在一个数组中。我想将其与类instance进行比较,如果实例与文件中已有的内容匹配,则不要将此特定实例(因为它已经存在)输出到文件中。否则,追加到该文件。

EN

回答 1

Stack Overflow用户

发布于 2013-05-02 05:50:53

打开要写入的文件时,请使用FileOutputStream(File file, boolean append)构造函数。例如:

代码语言:javascript
复制
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,而不是重复发明轮子。你可能会节省大量的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16327072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档