yЯ использую следующий код для загрузки файла из интернета.
//suppose I call this method inside main(String[] st) method.
private void download(String link){
URL url = new URL(link);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Accept-Encoding", "identity");
connection.setRequestProperty("connection", "close");
connection.connect();
save(connection.getInputStream());
}
private final int DOWNLOAD_BUFFER_SIZE = 10 * 1024;
private void save(InputStream inputStream) {
FileOutputStream fos;
try {
byte[] buffer = new byte[DOWNLOAD_BUFFER_SIZE];
int len;
fos = new FileOutputStream("FILE_PATH");
while ((len = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//close streams, flush, etc.
}
}
Все в порядке и код работает нормально. Но когда я изменяю значение DOWNLOAD_BUFFER_SIZE
на маленькие числа, такие как 5
, происходит странная вещь! Когда я изменяю значение DOWNLOAD_BUFFER_SIZE
на маленькие цифры и отключаю интернет-соединение, загрузка продолжается некоторое время и не останавливается! Но когда значение DOWNLOAD_BUFFER_SIZE
большое, как 10 * 1024
, все в порядке, и когда я отключаю, загрузка моего соединения останавливается.
Кто-нибудь может мне помочь? Я хочу, чтобы моя загрузка была остановлена, когда значение DOWNLOAD_BUFFER_SIZE
мало, и я отключаю свое интернет-соединение.
Я видел эту ссылку, но это не помогло.
ответ EJP не содержит решения для решения этой проблемы. Я хочу, чтобы DOWNLOAD_BUFFER_SIZE был маленьким по ряду причин.
Пожалуйста, помогите мне. Мне нужна ваша помощь. пожалуйста: X
Заранее извиняюсь, если грамматика моего предложения неверна. потому что я плохо говорю по-английски.