首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OutputStream删除文件内容JAVA

OutputStream删除文件内容JAVA
EN

Stack Overflow用户
提问于 2009-07-03 07:41:03
回答 2查看 8.9K关注 0票数 2

我有我需要记录序列化对象的文件。我打开ObjectOutputStream以便在文件中写入。如果我没有在文件中写任何东西,文件内容就会被删除。我不想在制作ObjectOutputStream时删除内容。

我的代码(我使用Guice),

代码语言:javascript
运行
复制
@Provides
@ArticleSerializationOutputStream
public ObjectOutputStream getArticleObjectOutputStream(Config config) {
  ObjectOutputStream out = null;
  String fileName = config.getConfigValue(ARTICLE_SNAPSHOT);
  try {
    out = new ObjectOutputStream(new FileOutputStream(new File(fileName)));
  } catch (IOException e) {
    String errorMessage = String.format(IO_EXCEPTION_PROBLEM, fileName);
    addError(errorMessage);
  }
  return out;
}
EN

回答 2

Stack Overflow用户

发布于 2009-07-03 07:48:11

创建ObjectOutputStream本身不会覆盖任何内容。我怀疑你刚刚创建了一个新的FileOutputStream,它将截断任何当前的内容,除非你告诉它追加。我认为你想要:

代码语言:javascript
运行
复制
FileOutputStream fos = new FileOutputStream(filename, true);

使其附加到文件中,而不是覆盖。

编辑:是的,根据您的编辑,您正在创建一个新的FileOutputStream,但没有告诉它追加。因此它会覆盖该文件。

票数 13
EN

Stack Overflow用户

发布于 2009-07-05 14:13:37

我解决了这个问题。我使用provider而不是在begin with Guice中实例化OutputStrams。

代码语言:javascript
运行
复制
@Inject @ArticleOutputStream
Provider<OutputStream> articleObjectOutputStream;

articleOutputStream.get();

现在可以正常工作了。

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

https://stackoverflow.com/questions/1078232

复制
相关文章

相似问题

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