Страница 1 из 1
Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 20:49
sanu0074
Доброго времени суток. Есть такой вопрос:
получаю ответ от сервера в виде XML-сообщения и разбираю его. Есть ссылки на файлы кот лежат на сервере
(например это картинки), нужно скачать эти файлы в папку на SD карту
(они будут в качестве кэша), и при следующем таком же запросе с android-приложения, сначала проверяем существование такого файла на SD-карте в нужной папке а потом если они есть - грузим с SD, а если нет то из сети.
Далеко не хочу пока копать, а для начала хочу разобраться в том, как загрузить файлы из сети на SD-карту и тут же отобразить их в activity??
p.s. я новичек в разработке android, буду очень благодарен за полезные ответы

Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 20:57
rezak90
делаем запрос по ссылке, получаем ответ в виде InputStream, кормим его в класс File и создаём файл по пути который ведёт на sdcard
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 20:58
sanu0074
rezak90 писал(а):делаем запрос по ссылке, получаем ответ в виде InputStream, кормим его в класс File и создаём файл по пути который ведёт на sdcard
а примерчик простенький можете набросать?
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 21:01
xr0m
Чем отличается инженер программист от программиста? Инженер умеет быстро находить нужную информацию )
Объяснение
Готовый код
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 21:07
sanu0074
xr0m писал(а):Чем отличается инженер программист от программиста? Инженер умеет быстро находить нужную информацию )
Объяснение
Готовый код
спасибо канешно за Help, но это я гуглил, хотелось бы на русском, т.к. с английским не оч владею...
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 21:14
xr0m
В примере голый код, ты по нему не разобрался? А как ты собираешься писать код на английском (программировать)?
Могу посоветовать использовать гугл траслит, он вполне сносно переводит на русский.
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 21:32
sanu0074
xr0m писал(а):В примере голый код, ты по нему не разобрался? А как ты собираешься писать код на английском (программировать)?
Могу посоветовать использовать гугл траслит, он вполне сносно переводит на русский.
в коде показано как записать текст в файл и вывести содержимое в Toast, а мне надо то как сохранить файл на SD из сети и потом отобразить его в activity!
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 22:09
rezak90
вы писали:
получаю ответ от сервера
значит как скачать файл с сети уже знаете, вот когда скачали:
Код: Выделить всё
File file = new File("/mnt/sdcard/testfile.xml");
OutputStream out=new FileOutputStream(file);
byte buf[]=new byte[1024];
int len;
while((len=is.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
is - это InputStream который получаем из сети
P.S. код конечно не проверял, а написал сходу (это что бы не было потом "а у меня не работает"), но смысл понятен.
Re: Скачать файл из сети на SD карту
Добавлено: 30 июн 2013, 22:51
sanu0074
P.S. код конечно не проверял, а написал сходу (это что бы не было потом "а у меня не работает"), но смысл понятен.
написал, вот, пример выдает "error 2":
Код: Выделить всё
try {
InputStream is = (InputStream) new URL("http://yandex.st/morda-logo/i/logo.png").getContent();
File file = new File("/mnt/sdcard/testfile.png");
OutputStream out=new FileOutputStream(file);
byte buf[]=new byte[1024];
int len;
while((len=is.read(buf))>0)
out.write(buf,0,len);
out.close();
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
Toast.makeText(this, "error", Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(this, "error 2", Toast.LENGTH_LONG).show();
}
пробовал создавать пустой файл и увеличивать размер byte buf[], нечего не изменилось
Re: Скачать файл из сети на SD карту
Добавлено: 01 июл 2013, 00:04
rezak90
что за ошибку?
но в любом случае так не делается:
Код: Выделить всё
InputStream is = (InputStream) new URL("http://yandex.st/morda-logo/i/logo.png").getContent();
хотя в асинхронном потоке нужно грузить
Re: Скачать файл из сети на SD карту
Добавлено: 02 июл 2013, 08:58
Finch
NetworkOnMainThreadException полюбому
Re: Скачать файл из сети на SD карту
Добавлено: 02 июл 2013, 09:48
rezak90
Finch писал(а):NetworkOnMainThreadException полюбому
rezak90 писал(а):хотя в асинхронном потоке нужно грузить