java通过url读取网络图片
使用java.net读取网络文件
import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class downimage { public void saveToFile(String destUrl) { FileOutputStream fos = null; BufferedInputStream bis = null; HttpURLConnection httpUrl = null; URL url = null; int BUFFER_SIZE = 1024; byte[] buf = new byte[BUFFER_SIZE]; int size = 0; try { url = new URL(destUrl); httpUrl = (HttpURLConnection) url.openConnection(); httpUrl.connect(); bis = new BufferedInputStream(httpUrl.getInputStream()); fos = new FileOutputStream("c:\\haha.gif"); while ((size = bis.read(buf)) != -1) { fos.write(buf, 0, size); } fos.flush(); } catch (IOException e) { } catch (ClassCastException e) { } finally { try { fos.close(); bis.close(); httpUrl.disconnect(); } catch (IOException e) { } catch (NullPointerException e) { } } } public static void main(String[] args) { // TODO Auto-generated method stub downimage dw=new downimage(); dw.saveToFile("http://10.81.36.193:8081/png.png"); } }
注意:
如果路径或者源文件名称中包含特殊符号或者空格,会报505错误,此时需要对URL进行转码
ftpUrl=ftpUrl.replaceAll("%", "%25");//先将地址本身带有的%转为%25 ftpUrl=ftpUrl.replaceAll(" ", "%20");//再将空格转换为%20
转码之后读取正常。