Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.251.22] |
|
Сообщ.
#1
,
|
|
|
Пожайлуста помогите!
Есть url по нему нужно скачать файл к себе на диск в указаную папку(т.е. чтобы я сам путь писак куда качать). Как это можно реализовать? P.S. И если можно то как зделать проверку, какого типа этот файл. |
Сообщ.
#2
,
|
|
|
вот так можно взять файлик с курсом доллара с сервера РосБизнесКонсалтинга:
URL homeRBC = null; DataInputStream dis = null; String full = new String(); boolean cont2 = false; try { homeRBC = new URL("http://www.rbc.ru/out/801.csv"); dis = new DataInputStream(homeRBC.openStream()); String line = dis.readLine(); while(line != null) { full += line + "\n"; line = dis.readLine(); } cont2 = true; } catch(IOException e) { System.out.println("Error for connection to RBC ..."); } if(cont2==true) { String cbr = toUnicode(full); } После этого в переменной cbr будет храниться содержимое файлика 801.csv функция toUnicode выглядит следующим образом: public static String toUnicode(String str) throws IOException { try { String charset="windows-1251"; byte[] buf = new byte[str.length()]; str.getBytes(0, str.length(), buf, 0); return new String(buf); } catch(Exception e) { return "Error toUnicode"; } } как записывать файл - сразу не вспомню, надо поискать ... |
Сообщ.
#3
,
|
|
|
Спасибо за пример, но мне нужно, чтобы не текстовый файл качался, а графический.
Может кто знает. |
Сообщ.
#4
,
|
|
|
int i_buf = 0;
Socket sock_s; InputStream st_inp; OutputStream st_out; try { sock_s = new Socket(www.sources.ru,80); st_inp = sock_s.getInputStream(); st_out = sock_s.getOutputStream(); st_out.write(new String("GET /NonCGI/posticon.gif HTTP/1.0").getBytes()); FileOutputStream fs_out = new FileOutputStream("nfile.graf"); while ((i_buf = st_inp.read()) != -1) { fs_out.write(i_buf); // http заголовок сам отпарси. } fs_out.close(); st_inp.close(); st_out.close(); sock_s.close(); } catch(UnknownHostException ex) { System.out.println("Unknown host."); } catch(Exception ioe) { System.out.println(ioe.toString()); } |
Сообщ.
#5
,
|
|
|
ps:
ессно после "GET /NonCGI/posticon.gif HTTP/1.0" нужно "\n\n" (см. rfc по http протоколу). а как тип узнать, то это в Content-Type увидиш в http заголовке ответа (см. rfc по http протоколу) : Content-Type: image/jpeg, Content-Type: image/gif, and etc ... |