2012-10-04 40 views
0

我正在寻找保存图像从给定的网址到指定的文件名与Java磁盘上的指定位置。我被告知要转换为一个字节数组然后保存。对于Java而言,我现在感觉完全迷失了。保存图片或文件的URL

我想我会通过打开一个到URL的连接开始:

`String img_url = "some img url"; 
URL url = new URL(img_url); 
URLConnection url_c = url.openConnection();` 

我在哪里何去何从?

编辑: 我发现这个实现应该保存内容,不管类型。所以如果URL是一个图像应该保存,或者如果URL是一个.doc或.pdf它应该保存它。

+1

这可能为你工作 http://stackoverflow.com/questions/10702484/download-image-from-web-url-in-java – a52

回答

1
File direct = new File(Environment.getExternalStorageDirectory() + "/urfoldername/"); 
if(!direct.exists()) 
       { 
        direct.mkdir(); //directory is created; 

       } 
file = new File("/sdcard/urfoldername/"+fileName); 
InputStream input = new BufferedInputStream(url.openStream()); 
OutputStream output = new FileOutputStream(file); 
byte data[] = new byte[1024]; 
     while ((count = input.read(data)) != -1) 
         { 
       total += count; 
       output.write(data, 0, count); 
       } 
       output.flush(); 
       output.close(); 
       input.close();     
+0

的URLConnection连接= url.openConnection(); \t \t connection.connect(); connection.getHeaderField(“content-disposition”) – Raghunandan

+0

您可以使用它来获取标题信息。 Pattern pc = Pattern.compile(“=([^;] *)”); //每个内容都被分隔; delimeter \t \t Matcher matcher = pc.matcher(connection.getHeaderField(“content-disposition”)); \t \t如果(matcher.find()) \t \t { \t \t \t文件名= matcher.group(1); //获取文件名。假设url以filename.type结尾 \t \t} – Raghunandan