Что происходит, когда загружаемый файл изменяется на сервере? - PullRequest
0 голосов
/ 11 февраля 2012

Я загружаю 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();
}

Спасибо! * * 1004

1 Ответ

1 голос
/ 11 февраля 2012

Это не имеет ничего общего с протоколом, и все, что связано с серверным программным обеспечением, которое вы используете на другом конце вашего URL.Ваш код может читать только то, что сервер отправляет вам.Код server должен гарантировать, что он либо удерживает блокировку записи в файле во время его потоковой передачи, либо иным образом обеспечивает получение действительной копии (неизмененного) файла.

...