一、概述:
url:统一资源定位符;一个URL的一个对象对应互联网上的一个资源,
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表
二、常用方法:
读取的方法:
- getProtocol 获取URL的协议
- getHost 获取URL主机名
- getPort 获取URL端口号
- getPath 获取URL文件路径
- getFile 获取URL文件名
- getRef 获取URL在文件中的相对位置
- getQuery 获取URL查询名
1 @Test 2 public void test() throws MalformedURLException { 3 URL url = new URL("https://www.cnblogs.com/lixiuming521125/tag/Java/default.html?page=1"); 4 System.out.println("获取URL的协议==>"+url.getProtocol()); 5 System.out.println("获取URL主机名==>"+url.getHost()); 6 System.out.println("获取URL端口号==>"+url.getPort()); 7 System.out.println("获取URL文件路径==>"+url.getPath()); 8 System.out.println("获取URL文件名==>"+url.getFile()); 9 System.out.println("获取URL在文件中的相对位置==>"+url.getRef()); 10 System.out.println("获取URL查询名==>"+url.getQuery()); 11 12 }
结果:
获取URL的协议==>https
获取URL主机名==>www.cnblogs.com
获取URL端口号==>-1
获取URL文件路径==>/lixiuming521125/tag/Java/default.html
获取URL文件名==>/lixiuming521125/tag/Java/default.html?page=1
获取URL在文件中的相对位置==>null
获取URL查询名==>page=1
其他(既有输入又有输出)
通过URL的对象调用相应方法,将此资源读取(“下载”)
1 //如何精服务器端的资源读取出来openStream,该方法只负责度如数据 2 InputStream is = url.openStream(); 3 byte[] b = new byte[20]; 4 int len; 5 //输出到控制台 6 while((len = is.read(b)) != -1){ 7 String str = new String(b,0,len); 8 System.out.println(str); 9 } 10 11 //如果有数据输入,又有输出,则考虑用URLConnection 12 //保存到本地文件 13 URLConnection urlConn = url.openConnection(); 14 InputStream is1 = urlConn.getInputStream(); 15 FileOutputStream fos = new FileOutputStream(new File("abc.txt")); 16 byte[] b1 = new byte[20]; 17 int len1; 18 while((len1 = is1.read(b1)) != -1){ 19 fos.write(b1, 0, len1); 20 } 21 fos.close(); 22 is1.close();