URL 统一资源定位符,通过URL可以直接读取或者写入网上的数据
1. URL类有两个组成部分, 协议名称 和 资源名称,中间用冒号隔开。 例如:http://www.xiaolai1995.com
2. URL类可以直接用URL的组成部分构建,也可以用以有的URL对象来构造。
示例代码:
1 public static void main(String[] args) { 2 try { 3 //创建URL实例 4 URL url = new URL("http://www.baidu.com"); 5 //根据已有URL实例创建URL实例 6 //?后表示参数,#后表示锚点 7 URL url2 = new URL(url, "/index?username=lwj#text"); 8 System.out.println("协议名:" + url2.getProtocol()); 9 System.out.println("主机:" + url2.getHost()); 10 //如果创建URL实例时没用指定端口号,根据协议的不同会使用默认的端口号,getPort返回值为-1; 11 System.out.println("端口号:" + url2.getPort()); 12 System.out.println("文件路径:" + url2.getPath()); 13 System.out.println("文件名:" + url2.getFile()); 14 System.out.println("相对路径:" + url2.getRef()); 15 System.out.println("查询字符串:" + url2.getQuery()); 16 } catch (MalformedURLException e) { 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } 20 }
输出结果:
协议名:http
主机:www.baidu.com
端口号:-1
文件路径:/index
文件名:/index?username=lwj
相对路径:text
查询字符串:username=lwj
用URL读取百度首页上信息的代码例子
示例代码:
1 try { 2 URL url = new URL("http://www.baidu.com"); 3 //用url的openstream方法获取url对象所表示资源的字节输入流 4 InputStream is = url.openStream(); 5 //字节输入流转字符输入流 6 InputStreamReader isr = new InputStreamReader(is,"utf-8"); 7 //为字符输入流添加缓冲 8 BufferedReader buffer = new BufferedReader(isr); 9 //循环的一行一行的输出缓冲区里的字符输入流 10 String data = buffer.readLine(); 11 while(data != null){ 12 System.out.println(data); 13 data = buffer.readLine(); 14 } 15 //关闭资源 16 buffer.close(); 17 isr.close(); 18 is.close(); 19 } catch (MalformedURLException e) { 20 // TODO Auto-generated catch block 21 e.printStackTrace(); 22 } catch (IOException e) { 23 // TODO Auto-generated catch block 24 e.printStackTrace(); 25 } 26 }
输出结果为百度首页的HTML代码。
可以把结果复制保存在文本文档中,然后把txt格式改html格式,打开就是百度的首页。
从上诉例子可以看出URL通过路径保存定位了网页资源,从而用URL类所带的方法操作这个路径中的资源。
如果有什么错误,或者我理解错误或不当的,恳请大家纠正,谢谢!嘻嘻嘻~
原文:http://www.cnblogs.com/xiaolai1995/p/6442538.html