用流的方式在实现对网络图片的下载
分析:
参数:
图片的网络地址:webURL
保存到本地地址:localPath
监听器:判断是否下载成功(这是一个观察者模式)
具体代码如下:
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class IODemo {
public static void main(String[] args) {
//网络图片链接地址
String webURL ="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3010015630,3017077777&fm=26&gp=0.jpg";
//本地保存地址
String localPath ="D:\\";
downLoadJpg(webURL, localPath, new DownListener() {
public void loadSuccess() {
System.out.println("下载成功");
}
public void loadFail() {
System.out.println("下载失败");
}
});
}
public static void downLoadJpg(String webURL,String localPath,DownListener downListener) {
try {
URL url =new URL(webURL);//网络URL
URLConnection connection = url.openConnection(); //打开网络连接
InputStream inputStream = connection.getInputStream();//输入流
OutputStream outputStream =new FileOutputStream(new File(localPath));//输出文件流
byte[] b =new byte[1024];//缓冲区对象
int len;//读取计数器
while ((len = inputStream.read(b)) != -1) {
outputStream.write(b,0,len);
}
//关闭输入流操作
try {
inputStream.close();
}catch (Exception e) {
e.printStackTrace();
}
//关闭输出流操作
try {
outputStream.close();
}catch (Exception e) {
e.printStackTrace();
}
//监听下载成功
downListener.loadSuccess();
}catch (Exception e) {
//监听下载失败
downListener.loadFail();
e.printStackTrace();
}
}
}