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

转码之后读取正常。
原文地址:https://www.cnblogs.com/luxd/p/7306302.html