Я пытаюсь заставить эту функцию загружать файл из Интернета. Я передаю ему два аргумента: from - url на файл в сети, to - локальный путь к файлу; Проблема, которую выдает IOException
при открытии потока:
Authority expected at index 7: http://
Вот мой код:
private boolean downloadFile(String pathFrom, String pathTo)
{
URL url;
ReadableByteChannel rbc;
FileOutputStream fos;
try {
url = new URL(pathFrom);
rbc = Channels.newChannel(url.openStream());
fos = new FileOutputStream(pathTo);
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
return true;
} catch (MalformedURLException e) {
Log.e(TAG, "Failed to download file (" + pathFrom + ") because of malformed URL.");
} catch (FileNotFoundException e) {
Log.e(TAG, "Failed to download file (" + pathFrom + ") because FileNotFoundException occured when opening output stream: " + e.getMessage());
} catch (IOException e) {
Log.e(TAG, "Failed to download file (" + pathFrom + ") because IOException occured when transfering file or opening input stream: " + e.getMessage());
}
return false;
}
Как видите, он также печатает URL-адрес файла, и все в порядке. Вы можете вставить его в браузер, и он откроет файл.
Кто-нибудь знает, что вызывает это и / или как это исправить?
P.S. У меня есть оба разрешения на использование — INTERNET
и WRITE_EXTERNAL_STORAGE