1、URL概念
URL(Uniform Resource Locator)统一资源定位符,它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。它由五个部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>#<引用>
2、URL编程
(1)为了表示URL,java.net包中实现了类URL。我们可以通过下面的构造方法来初始化一个URL对象:
URL(String url);//URL代表了一个绝对地址,URL对象直接指向这个资源。
URL(URL baseURL,String relativeURL);//其中baseURL代表绝对地址,realtiveURL代表相对地址。
URL(String protocol,String host,String file);//protocol代表通信协议,host代表主机名,file代表文件名。
URL(String protocol,String host,int port,String file);
(2)获取URL对象的属性:
getFile();//获得URL指定资源的完整文件名。
getHost();//返回主机名。
getPath();//返回指定资源的文件目录和文件名。
getPort();//返回端口号。
getProtocol();//返回表示URL中协议的字符串对象。
getRef();//返回URL的HTML文档标记,即#号标记。
getUserInfo();//返回用户信息。
(3)URL有两种方法可以用来访问Internet上的资源:
1)使用URL的openConnection()方法创建一个URLConnection类对象。再通过URLConnection对象获取相应的输入流和输出流。
2)利用URL类的openStream()方法。openStream()方法与指定的URL建立连接并返回InputStream类的对象。
3、举例说明
package com.iotek.url;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
public class URLDemo {
public static void main(String[] args) throws IOException {
DownloadUtil.download("https://www.baidu.com/img/bd_logo1.png?where=super", "baidu.jpg", "f:\\test");
System.out.println("下载结束!");
}
}
class DownloadUtil{
public static void download(String urlString,String fileName,String savePath) throws IOException{
URL url = new URL(urlString);
/*URLConnection conn = url.openConnection();
InputStream inputStream = conn.getInputStream();*/
InputStream inputStream = url.openStream();
byte[] buff = new byte[1024*1024];
int len = 0;
File file = new File(savePath);
if(!file.exists()){
file.mkdirs();
}
OutputStream outputStream = new FileOutputStream(file.getAbsolutePath()+"\\"+fileName);
while((len = inputStream.read(buff))!=-1){
outputStream.write(buff, 0, len);
}
inputStream.close();
outputStream.close();
}
}