URL

java.net.URL:Uniform Resource Locators,统一资源定位符
组成部分:协议,主机名或IP,端口号,资源路径
未命名绘图.png

常用的构造方法:

方法 描述
URL(String spec) 根据字符串表示形式创建URL对象
URL(String protocol , String host , int port , String file) 根据指定protocol、host、port、file 创建URL对象
URL(String protocol , String host , String file) 从指定的protocol、host、file创建一个URL
URL(URL context , String spec) 通过在指定的上下文中解析给定的规范来创建
URL(String protocol, String host, int port, String file, URLStreamHandler handler) 创建 URL从指定对象 protocol , host , port数, file和 handler
URL(URL context, String spec, URLStreamHandler handler) 通过在指定上下文中使用指定的处理程序解析给定规范来创建URL

常用的方法:

  • getProtocol():获取此URL的协议地址
  • getHost():获取此URL的主机名
  • getPort():获取此URL的端口号
  • getFile():获取此URL的文件名
  • getPath():获取此URL的路径部分
  • getRef():获取此URL的锚定
    1. URL url = new URL("https://cn.bing.com/search?q=%E7%99%BE%E5%BA%A6");
    2. // 获取协议:https
    3. System.out.println(url.getProtocol());
    4. // 获取主机:cn.bing.com
    5. System.out.println(url.getHost());
    6. // 获取端口:-1
    7. System.out.println(url.getPort());
    8. // 获取默认端口:443
    9. System.out.println(url.getDefaultPort());
    10. // 获取路径名:/search
    11. System.out.println(url.getPath());
    12. // 获取文件:/search?q=%E7%99%BE%E5%BA%A6
    13. System.out.println(url.getFile());

从URL中获取连接:

  • InputStream openStream():打开此URL,并返回一个InputStream,以便从该连接读取
  • URLConnection openConnection():返回一个URLConnection实例,表示与URL引用的远程对象的URL

网页下载:

  1. URL url = new URL("https://cn.bing.com/search?q=%E7%99%BE%E5%BA%A6");
  2. try(InputStream inputStream = url.openStream();){
  3. byte[] bytes = new byte[1024];
  4. // 使用ByteArrayOutputStream进行收集
  5. ByteArrayOutputStream aos = new ByteArrayOutputStream();
  6. int read = 0;
  7. while ((read = inputStream.read(bytes)) != -1) {
  8. aos.write(bytes, 0, read);
  9. }
  10. // 将ByteArrayOutputStream中的数据写入系统标准输出
  11. aos.writeTo(System.out);
  12. } catch (IOException e) {
  13. e.printStackTrace();
  14. }