Socket编程基础(三)——URL

一、URL介绍

  • URL(Uniform Resource Locator) 统一资源定位符,表示Internet上某一资源的地址

  • 组成: 协议名称 + 资源名称 中间用冒号隔开 http(协议名称)?/www.baidu.com(资源名称)

  • 在Java.net包中, 提供了URL类

在这里插入图片描述

二、URL主要方法

构造方法

在这里插入图片描述

重要常用方法

在这里插入图片描述

三、方法实例

在这里插入图片描述

代码块

import java.net.MalformedURLException;
import java.net.URL;

/**
 * URL(Uniform  Resource Locator) 统一资源定位符,表示Internet上某一资源的地址
 * <p>
 * 组成: 协议名称  +  资源名称   中间用冒号隔开   http://www.baidu.com
 * <p>
 * 在Java.net包中, 提供了URL类
 */
public class IUrl {

    public static void main(String[] args) {

        try {
            //创建一个URL  实例
            URL baiDu = new URL("http://www.baidu.com");
            //根据一个URL 生成一个新的URL,  ?后面表示参数   #  表示瞄点
            URL url = new URL(baiDu, "/index.html?username = tom#test");
            System.out.println("协议:" + url.getProtocol());
            System.out.println("主机:" + url.getHost());
            //http默认的为80端口,如果未指定端口号,getPort返回值为-1
            System.out.println("端口:" + url.getPort());
            System.out.println("文件路径:" + url.getPath());
            System.out.println("文件名:" + url.getFile());
            System.out.println("相对路径:" + url.getRef());
            System.out.println("查询字符串:" + url.getQuery());

        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

    }

}

四、通过URL读取网页内容
以百度页面为例

在这里插入图片描述

代码块

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

/**
 *  * 通过URL读取网页内容
 *  * 1、通过URL对象的openStream()方法可以得到指定资源的输入流
 *  *
 *  * 2、通过输入流可以读取,访问网络上的资源
 */
public class UrlStream {

    public static void main(String[] args) {

        try {
            //创建一个URL实例
            URL url = new URL("http://www.baidu.com");
            //通过openStream 方法获取URL对象所表示的资源的字节输入流
            InputStream inputStream = url.openStream();
            // 将字节苏入流转换为字符输入流
            InputStreamReader isr = new InputStreamReader(inputStream,"utf-8");
            //为字符输入流添加缓冲
            BufferedReader br = new BufferedReader(isr);
            String data = br.readLine();
            while (data != null){
                System.out.println(data);
                data = br.readLine();
            }

            br.close();
            isr.close();
            inputStream.close();

        } catch (java.io.IOException e) {
            e.printStackTrace();
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值