认识URI、URL、URN

详细请参考:https://blog.51cto.com/xoyabc/1905492

URI:uniform resource Indent 统一资源标识符

URL:uniform resource locator 统一资源定位符

URN:统一资源名称

它们的关系如:

URL

我们学习java网络编程最常用的类就是URL。

一个完整的URL由:protocol、host、port、path、parameter、anchor(锚点)组成

代码测试:

package _20191213;
import java.net.MalformedURLException;
import java.net.URL;
/**
* URL测试类
* @author TEDU
*
*/
public class URLTest {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("https://www.cnblogs.com/Scorpicat/category/1596649.html");
System.out.println(url.getProtocol());
System.out.println(url.getFile());
System.out.println(url.getAuthority());
System.out.println(url.getDefaultPort());
System.out.println(url.getPort());
System.out.println(url.getQuery());
System.out.println(url.getHost());
System.out.println(url.getRef());
System.out.println(url.getUserInfo());
}
}

  

运行结果:

https
/Scorpicat/category/1596649.html
www.cnblogs.com
443
-1
null
www.cnblogs.com
null
null

通过URL与IO流爬取一张网页的数据

运行后将会生成一个web.txt文件,存储有目标地址的网页数据。

package _20191213;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL; public class DownloadAWebPage {
public static void main(String[] args) throws IOException {
//目标地址
URL url = new URL("https://gy.anjuke.com/?pi=navi-tencent-qq-mz");
//流创建:选择源,选择流,读取,关闭
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("web.txt")));
char[] cbuf = new char[1024*8];
String content;
while((content = br.readLine())!=null) {
System.out.println(content);
bw.write(content);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}

  

最新文章

  1. Qt And MFC Mouse Over Tips
  2. Azure Application Gateway (1) 入门
  3. Lind.DDD.Authorization用户授权介绍
  4. [dpdk] 熟悉SDK与初步使用 (四)(L3 Forwarding源码分析)
  5. h5 range应用 透明度+RGB
  6. Oracle索引简单介绍与示例
  7. Rpath handling on Linux
  8. CentOS6.5菜鸟之旅:安装rpmforge软件库
  9. eclips中增加对jar包的引用
  10. AngularJs练习Demo17 ngRoute
  11. Windows Socket的UDP和TCP编程介绍
  12. Java--Dom解析XML文件
  13. [STM31F103]独立看门狗
  14. Laravel资源理由器跟隐式控制的对比及是怎样的吧?- Route::resource vs Route::controller
  15. JDBC(14)—对DAO进行改进修改
  16. [JZOJ5970] Space
  17. 可访问性(Accessibility) => 无障碍功能
  18. 自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型Script
  19. JavaEE 学习框架
  20. docker on mac:误删default vm的处理方法

热门文章

  1. 【开发笔记】- Grails框架定义一个不是数据库字段得属性
  2. javascript实现上传图片并展示
  3. vue中路由拦截无限循环的情况
  4. 遇到了Microsoft Visual Studio is Busy!
  5. Windows 获取进程ID
  6. CDH5.13快速体验
  7. windows平台上MongoDB安装配置
  8. css 高度随宽度比例变化
  9. nginx 静态资源服务
  10. 05-C#笔记-基本变量