我有一个名为" admin_product.bin"的文件。 我想将对象追加到文件中。 搜索后我发现了一个课程如下:
ObjectInputStream
上面的代码帮助我们将数据附加到我的文件中。但是,当我尝试使用java.io.StreamCorruptedException: invalid stream header: 79737200
读取文件时,它会抛出错误,如下所示:
public static void write_into_file() throws IOException {
File file = null;
file = new File("admin_product.bin");
if(!file.exists()) {
ObjectOutputStream os = null;
try {
os = new ObjectOutputStream(new FileOutputStream(file));
os.writeObject(prd);
System.out.println("Done!");
} catch(Exception e) {
System.out.println("Exception = " + e);
} finally {
if(os != null) {
os.close();
}
}
}
else {
AppendingObjectOutputStream as = null;
try {
as = new AppendingObjectOutputStream(new FileOutputStream(file));
as.writeObject(prd);
System.out.println("Done!");
} catch(Exception e) {
System.out.println("Exception = " + e);
} finally {
if(as != null) {
as.close();
}
}
}
}
我的代码示例是:
int sum = IntStream.of(array).limit(4).sum();
有谁能告诉我哪里出错了?
我有以下问题的答案(但无法解决问题) -
答案 0 :(得分:1)
您没有附加到该文件。如果要附加到对象流,则还必须附加到该文件,而不是覆盖已存在的文件。
这将覆盖现有的文件内容:
new FileOutputStream(file)
追加使用
new FileOutputStream(file, true)
整行将是:
as = new AppendingObjectOutputStream(new FileOutputStream(file, true));