需要通过第三方接口返回的图片路径来下载网络图片,通过输入流下载网络数据,再通过输出流写出数据
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class tupian_test {
public static void main(String[] args) {
//http连接
HttpURLConnection conn = null;
//文件输入流
InputStream inputStream = null;
//缓存字节流
BufferedInputStream bs = null;
//文件输出流
FileOutputStream out = null;
try{
File file_name = new File("E:\\test");
if(!file_name.isDirectory()&&!file_name.exists()){
file_name.mkdirs();
}
out = new FileOutputStream(file_name+"\\1.png");
//建立连接
URL httpurl = new URL("https://dl.pvp.xoyo.com/prod/icons/ui/image/homeland/data/source/home/furniture/statue/statue1_1_1007_p_e.prefab.png");
conn = (HttpURLConnection) httpurl.openConnection();
//提交表单
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(false);
//post方式不能使用缓存
conn.setUseCaches(false);
//连接指定资源
conn.connect();
//获取网络输入流
inputStream = conn.getInputStream();
bs = new BufferedInputStream(inputStream);
//创建一个1k的数据缓冲
byte b[] = new byte[1024];
//读取到的数据长度
int len = 0;
//开始读取
while ((len=bs.read(b))!=-1){
out.write(b,0,len);
}
System.out.println("下载完成");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(out!=null){
out.close();
}
if(bs!=null){
bs.close();
}
if(inputStream!=null){
inputStream.close();
}
}catch(Exception e2){
e2.printStackTrace();
}
}
}
}
参考帖子:Java从服务器下载图片保存到本地