Java_URL类

1️⃣URL的实例封装着一个统一资源定位符(Uniform Resourse Locator),使用URL创建对象的应用程序称作客户端程序
2️⃣一个URL对象封装着一个具体的资源的引用,表明客户要访问这个URL中的资源,客户利用URL对象可以获取URL中的资源。
3️⃣一个URL对象通常包含最基本的3部分信息:协议地址资源
protocol://host:port/path?query#fragment
4️⃣协议必须是URL对象所在的Java虚拟机支持的协议,许多协议并不为我们所常用,而常用的HTTP、HTTPS、FTP、File协议都是虚拟机支持的协议;地址必须是能连接的有效IP地址或域名;资源可以是主机上的任何一个文件。
5️⃣URL实例:http://www.google.com/index.html?language=cn#j2se
在这里插入图片描述

URL的类方法

构造方法

java.net包中定义了URL类,该类用来处理有关URL的内容。对于URL类的创建和使用。
在这里插入图片描述

普通方法

URL类中包含了很多方法用于访问URL的各个部分
在这里插入图片描述

URLConnections 类方法

openConnection() 返回一个 java.net.URLConnection。
1️⃣如果你连接HTTP协议的URL, openConnection() 方法返回 HttpURLConnection 对象。
2️⃣如果你连接的URL为一个 JAR 文件, openConnection() 方法将返回 JarURLConnection 对象。
在这里插入图片描述

读取URL中的资源

① URL对象调用InputStream openStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源通过该输入流可以将服务器上的资源信息读入到客户端
②URL对象调用InputStream openStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源通过该输入流可以将服务器上的资源读入客户端
例子:用户在命令行窗口输入网址,读取服务器上的资源,由于网络速度或其他因素,URL资源的读取可能会引起堵塞;因此,程序需在一个线程中读取URL资源,以免堵塞主线程。
在这里插入图片描述
Look.java

package UrlClass;

import java.net.*;
import java.io.*;

public class Look implements Runnable{

    URL url;
    public void setUrl(URL url){
        this.url = url;
    }

    @Override
    public void run() {
        try{
            InputStream in = url.openStream();
            byte[] b = new byte[1024];
            int n=-1;
            while ((n=in.read(b))!=-1){
                String str = new String(b,0,n);
                System.out.println(str);
            }
        }catch (IOException e){

        }
    }
}

Main.java

package UrlClass;

import java.net.URL;
import java.util.Scanner;

public class Main {
    public  static void main(String []args){
        Scanner scanner;
        URL url;
        Thread readURL;
        Look look = new Look();
        System.out.println("输入URL资源,例如:http://www.yahoo.com");
        scanner = new Scanner(System.in);
        String sourse = scanner.nextLine();
        try{
            url = new URL(sourse);
            look.setUrl(url);
            readURL = new Thread(look);
        }catch (Exception e){
            System.out.println(e);
        }
        readURL = new Thread(look);
        readURL.start();
    }
}

Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符
区别
 next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取
 
 nextLine()吸取字符前后的空格/Tab键,回车键截止

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值