gpt4 book ai didi

java - 从文件读取给出 java.io.StreamCorruptedException : invalid stream header: 73720027

转载 作者:行者123 更新时间:2023-12-01 18:05:04 24 4
gpt4 key购买 nike

我试图将 LinkedList 保存到能够追加的文本文件中,但是当我阅读它时,我收到异常“java.io.StreamCorruptedException:无效的流 header :73720027”

我看到有很多关于同一问题的问题,但没有任何东西可以帮助我解决问题。我做错了什么?

  public void saveResult() {
File file = new File(context.getFilesDir(), "" + File.separator + "prevResultt.txt");

FileOutputStream fileOutputStream;
ObjectOutputStream objectOutputStream;
try {
fileOutputStream = Objects.requireNonNull(context).openFileOutput("prevResultt.txt", MODE_PRIVATE);
if (!file.exists()) {
objectOutputStream = new ObjectOutputStream(fileOutputStream);
} else {
objectOutputStream = new AppednableOOS(fileOutputStream);
}
objectOutputStream.writeObject(resultsLinkedList);
objectOutputStream.close();
} catch (IOException f) {
f.printStackTrace();
}

}



public LinkedList<Result> loadResult() {
results = new LinkedList<>();
File file = new File(getContext().getFilesDir(), "" + File.separator + "prevResultt.txt");
if (file.exists()) {
try {
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file));
results = (LinkedList) objectInputStream.readObject();
objectInputStream.close();
} catch (Exception e) {

e.printStackTrace();
}
}
return results;
}



import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

public class AppednableOOS extends ObjectOutputStream {

public AppednableOOS(OutputStream out) throws IOException {
super(out);
}

@Override
protected void writeStreamHeader() throws IOException {
reset();
}
}

最佳答案

我刚刚尝试了一段时间,也许已经找到了解决方案。我认为你的问题是你实际上并没有附加到文件中。因此后续写入会覆盖文件内容并剥离 header - 因此出现异常。

您可以尝试更改此行:

fileOutputStream = Objects.requireNonNull(context).openFileOutput("prevResultt.txt", MODE_PRIVATE);

对此:

fileOutputStream = Objects.requireNonNull(context).openFileOutput("prevResultt.txt", MODE_PRIVATE | MODE_APPEND);

如果这不能解决您的问题,请告诉我。通过使用实际附加而不是覆盖的输出流,我能够使其在纯 Java 中工作。

关于java - 从文件读取给出 java.io.StreamCorruptedException : invalid stream header: 73720027,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60571659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com