URL:是统一资源定位器的简称,它表示Internet某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的www,ftp站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。
组成:URL的基本结构由5部分组成。
<传输协议>://<主机名>:<端口号>/<文件名>#<引用>
http://www.tomcat.com:80/Gamelan/network.htm#BOTTOM
协议名://机器名+端口号+文件名+内部引用
为了表示URL,java.net包中实现了类URL。
构造方法
① URL(String url)
//url代表一个绝对地址,URL对象直接指向这个资源,如:
URL url=new URL(http://www.baidu.com);
② URL(URL baseURL,String relativeURL)
//其中,baseURL代表绝对地址,relativeURL代表相对地址,如:
URL url=new URL(http://www.baidu.com);
URL lib=new URL(url,”library/library.htm”);
③ URL(String protocol,String host,String file)
//其中,protocol代表通信协议,host代表主机名,file代表文件名,如:
new URL(“http”,www.baidu.com,”/test/test.htm”);
④ URL(String protocol,String host,int port,String file)
URL lib = new URL(“http”,www.baidu.com,80,”/test/test.htm”);
获取URL对象的属性
① getFile():获得URL指定资源的完整文件名。
② getHost():返回主机名。
③ getPath():返回指定资源的文件目录和文件名。
④ getPort():返回端口号。
⑤ getProtocol():返回表示URL中协议的字符串对象。
⑥ getRef():返回URL中的HTML文档标记,即#号标记。
⑦ getUserInfo():返回用户信息。
URL有两种方法可以用来访问Interent上资源。
① 使用URL的openConnection()方法创建一个URLConnection类的对象。再通过URLConnection对象获取相应的输入/输出流。
② 利用URL类的openStream()方法。openStream()方法与指定的URL建立连接并返回InputStream类的对象。
示例:下载url文件到指定目录
下载方法:
1 class DownLoadUtil { 2 public static void download(String urlString, String fileName, 3 String savePath) throws IOException { 4 URL url = new URL(urlString); 5 //方法一 6 // URLConnection conn = url.openConnection(); 7 // InputStream is = conn.getInputStream(); 8 9 //方法二 10 InputStream is = url.openStream(); 11 12 byte[] buff = new byte[1024]; 13 int len = 0; 14 File file = new File(savePath); 15 if (!file.exists()) { 16 file.mkdirs(); 17 } 18 OutputStream os = new FileOutputStream(file.getAbsolutePath() + "\\" 19 + fileName); 20 while ((len = is.read(buff)) != -1) { 21 os.write(buff, 0, len); 22 } 23 // 释放资源 24 os.close(); 25 is.close(); 26 } 27 }
主方法:
1 try { 2 DownLoadUtil 3 .download( 4 "http://images.sohu.com/saf/a2016/0511/wKiDRFcy-16AHkkXAABH52NJX18606.jpg", 5 "my.jpg", "d:/ceshi"); 6 } catch (IOException e) { 7 e.printStackTrace(); 8 }