原理
Java程序通过URL可以访问Internet,浏览器或其他程序用过给定的URL就可以再网络上查找相应的资源。
第一步:构造URL对象
第二步:获取URL指向的资源
通过openStream()方法读取一个或多个URL所指定的资源
第三步:通过建立连接并返回InputStream,可以读取资源中的数据了。
代码实现
下面展示一些 内联代码片
。
public static void main(String[] args) throws Exception {
// 构造URL对象并获取资源路径
URL url1 = new URL("http://www.shijuepi.com/uploads/allimg/200918/1-20091Q10420.jpg");
URL url2 = new URL("http://img.ewebweb.com/uploads/20191006/20/1570365161-shmEFlWfHU.jpg");
URL url3 = new URL("http://www.shijuepi.com/uploads/allimg/200918/1-20091Q10421.jpg");
URL url4 = new URL("https://www.diyifanwen.com/images/sichuan/0872403401922790.jpg");
URL url5 = new URL("http://img10.3lian.com/sc6/show02/33/27/332702.jpg");
URL url6 = new URL("http://www.scdongqu.gov.cn/uploadfiles/201812/17/2018121711091024292013.jpg");
// 创建一个数组
ArrayList<URL> arrayList = new ArrayList<URL>();
// 添加元素
arrayList.add(url1);
arrayList.add(url2);
arrayList.add(url3);
arrayList.add(url4);
arrayList.add(url5);
arrayList.add(url6);
for (int i = 0; i < arrayList.size(); i++) {
// 通过openStream()方法读取一个或多个URL所指定的资源
InputStream openStream = arrayList.get(i).openStream();
// 在磁盘中给定指定的路径用于存放资源
File file = new File("E:" + File.separator + "IP" + File.separator + i + ".jpg");
// 通过建立连接并返回InputStream,可以读取资源中的数据了
FileOutputStream fileOutput = new FileOutputStream(file);
int len = 0;
while ((len = openStream.read()) != -1) {
fileOutput.write(len);
}
// 最后关闭流
openStream.close();
fileOutput.flush();
fileOutput.close();
}
}
成果展示
注意与总结
当你只有一个资源时把集合去除就可以相对简单,在运用集合读取大量网络资源时要注意运用遍历把每一个资源读取到指定的文件夹中。这里的文件存放位置是自己手动在磁盘里创建的一个文件夹,小伙伴们在自己写的时候要注意这一点不然系统会出现拒绝访问的bug。