java中URL的使用

来源:互联网 发布:在excel中删除重复数据 编辑:程序博客网 时间:2024/06/01 18:47

1、URL

          a、URL 统一资源定位符,表示Internet上某一资源的地址。

          b、URL 由两部分组成:协议名称和资源名称,中间用冒号隔开。

          c、在java.net包中,提供了URL类来表示URL。

package test01;

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

/*
 * URL常用方法
 */
public class test02 {
    
    public static void main(String args[]) {
        try {
            URL mm=new URL("http://www.baidu.com");
            //?后面表示参数  #后面表示锚点
            URL url=new URL(mm, "/index.html?username=tom#test");
            System.out.println("协议:"+url.getProtocol());
            System.out.println("主机:"+url.getHost());
            //如果未指定端口号,则使用默认端口号,getport()方法返回值为-1
            System.out.println("端口号:"+url.getPort());
            System.out.println("文件路径:"+url.getPath());
            System.out.println("文件名称:"+url.getRef());
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}


2、使用URL读取网页内容

      a、通过URL对象的openStream()方法可以得到指定资源的输入流

      b、通过输入流可以读取、访问网络上的资源

package test01;

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

/*
 * 使用URL读取网页内容
 */
public class tese03 {

    public static void main(String[] args) {
        try {
            URL url =new URL("http://www.baidu.com");
            //通过URL的openStream方法获取URL对象所表示的资源的字节输入流
            InputStream is=url.openStream();
            //将字节输入流转换为字符输入流
            InputStreamReader isr=new InputStreamReader(is,"utf-8");
            //为字符输入流添加缓存
            BufferedReader br=new BufferedReader(isr);
            String date=br.readLine();
            while (date!=null) {
                System.out.println(date);
                date=br.readLine();
                
            }
            br.close();
            isr.close();
            is.close();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}


原创粉丝点击