OutputStream删除文件内容JAVA

2 java file objectoutputstream

我有文件,我需要记录序列化对象.我打开ObjectOutputStream文件写作.如果我没有在文件中写入任何内容,则文件内容将被删除.我不希望在制作时删除内容ObjectOutputStream.

我的代码(我使用Guice),

@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;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 13

创建ObjectOutputStream自己不会覆盖任何东西.我怀疑你刚刚创建了一个新的FileOutputStream,它将截断当前任何内容,除非你告诉它追加.我想你想要:

FileOutputStream fos = new FileOutputStream(filename, true);
Run Code Online (Sandbox Code Playgroud)

使其附加到文件而不是覆盖.

编辑:是的,根据你的编辑,你创建一个新的,FileOutputStream而不是告诉它追加.因此它会覆盖文件.