我正在从服务器下载zip文件,但不断收到损坏的文件。我的连接速度很慢,我知道服务器会不断更新文件。这是为什么我得到损坏的文件?我认为网络协议应该足够智能,以避免这种情况。
private void downloadFile(String urlString, String fileName)
throws MalformedURLException, IOException {
InputStream input = new URL(urlString).openConnection().getInputStream();
FileOutputStream output = new FileOutputStream(fileName);
int bufferSize = 153600;
byte[] buffer = new byte[bufferSize];
int totalBytesRead = 0;
int bytesRead = 0;
while ((bytesRead = input.read(buffer)) > 0) {
output.write(buffer, 0, bytesRead);
buffer = new byte[bufferSize];
totalBytesRead += bytesRead;
}
output.close();
input.close();
}
谢谢!
答案 0 :(得分:1)
这与协议无关,而且与您在网址另一端使用的服务器软件有关。您的代码只能读取服务器发送给您的内容。 服务器代码需要确保它在将文件流式传输给您时保持文件的写锁定,或者确保您收到(未修改的)文件的有效副本。