gpt4 book ai didi

java - 从远程地址复制文件似乎丢失了信息

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:49 25 4
gpt4 key购买 nike

我有一个程序可以从网页读取文件并将其写入文件。大多数情况下这工作正常,但有时文件会损坏。我想这与网络问题有关。我可以做些什么来使我的代码更稳定?

String filename = "myfile.txt";
File file = new File(PROFilePath+"/"+filename);
//Open the connection
URL myCon = new URL("url to a page");
URLConnection uc = myCon.openConnection();
FileOutputStream outputStream = new FileOutputStream(file);

int read = 0;
byte[] bytes = new byte[1024];
while ((read = uc.getInputStream().read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
uc.getInputStream().close();
outputStream.close();

最佳答案

您没有为您的副本使用显式编码,您只是复制所有字节并将这些字节写入一个文件,稍后可能会通过不同的解码读取该文件。找出这一点的一种简单方法是在发现“损坏”文件后比较远程地址处的文档字节和复制的文件。但是,结合您提供的信息还不够详细,无法为您提供更具体的帮助。是否有您遇到困难的示例文档?查看this related question and answer以及this thread对这个问题进行更深入的讨论。

至于您的怀疑:当您从远程地址读取时,连接不应简单地丢失 字节。当您通过 TCP(我猜 URL 的协议(protocol)是 HTTP)连接时,这将是实现中的一个非常严重的错误,丢失的包会自动得到补偿。如果连接断开,连接应该发出异常而不是静默失败。我不认为这是你错误的根源。

关于java - 从远程地址复制文件似乎丢失了信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570161/

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