java通过url读取网络图片

时间:2023-03-10 05:23:48
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 转码之后读取正常。