gpt4 book ai didi

java - 使用 Java 下载文件时文件损坏

转载 作者:行者123 更新时间:2023-11-29 06:48:10 25 4
gpt4 key购买 nike

这个问题似乎不一致地发生。我们正在使用 java 小程序从我们的站点下载一个文件,我们将其临时存储在客户端的机器上。

这是我们用来保存文件的代码:

URL targetUrl = new URL(urlForFile);
InputStream content = (InputStream)targetUrl.getContent();
BufferedInputStream buffered = new BufferedInputStream(content);
File savedFile = File.createTempFile("temp",".dat");

FileOutputStream fos = new FileOutputStream(savedFile);
int letter;
while((letter = buffered.read()) != -1)
fos.write(letter);
fos.close();

稍后,我尝试使用以下方法访问该文件:

ObjectInputStream keyInStream = new ObjectInputStream(new FileInputStream(savedFile));

大多数时候它没有问题,但偶尔我们会收到错误:

java.io.StreamCorruptedException: invalid stream header: 0D0A0D0A

这让我相信它没有正确保存文件。

最佳答案

我猜你用 getContent 和 BufferedInputStream 完成的操作把文件当作一个 ascii 文件来处理,它已经将换行符或回车符转换为回车符 + 换行符 (0x0d0a),这混淆了 ObjectInputStream(它期望序列化数据对象。

关于java - 使用 Java 下载文件时文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/401748/

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