关于Java的URL编程

来源:互联网 发布:c语言常用库函数 编辑:程序博客网 时间:2024/05/18 02:40
前言:

1> URL(Uniform Resource Locator):统一资源定位符,它表示 Internet 上某一资源的地址。

通过 URL 我们可以访问 Internet 上的各种网络资源,比如最常见的 www,ftp 站点。

浏览器通过解析给定的 URL 可以在网络上查找相应的文件或其他资源。 

2> URL的基本结构由5部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>
例如: http://192.168.1.100:8080/helloworld/index.jsp
3> 为了表示URL,java.net 中实现了类 URL。我们可以通过下面的构造器来初始化一个 URL 对象:
public URL (String spec):通过一个表示URL地址的字符串可以构造一个URL对象。例如:URL url = new URL ("http://www. atguigu.com/"); 
public URL(URL context, String spec):通过基 URL 和相对 URL 构造一个 URL 对象。例如:URL downloadUrl = new URL(url, “download.html")
public URL(String protocol, String host, String file); 例如:new URL("http", "www.atguigu.com", “download. html");
public URL(String protocol, String host, int port, String file); 例如: URL gamelan = new URL("http", "www.atguigu.com", 80, “download.html");
4> URL的方法 openStream():能从网络上读取数据
5> 若希望输出数据,例如向服务器端的 CGI (公共网关接口-Common Gateway Interface-的简称,
是用户浏览器和服务器端的应用程序进行连接的接口)程序发送一些数据,则必须先与URL建立连接,
然后才能对其进行读写,此时需要使用 URLConnection 。
URLConnection:表示到URL所引用的远程对象的连接。当与一个URL建立连接时,首先要在一个 URL 对象上通过方法 openConnection() 生成对应的
URLConnection 对象。如果连接过程失败,将产生IOException. 
URL netchinaren = new URL ("http://www.atguigu.com/index.shtml"); 
URLConnectonn u = netchinaren.openConnection( ); 

代码示例如下:
package com.atguigu.java1;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;//URL:统一资源定位符,一个URL的对象,对应着互联网上一个资源。//我们可以通过URL的对象调用其相应的方法,将此资源读取(“下载”)public class TestURL {    public static void main(String[] args) throws Exception {        //1.创建一个URL的对象        URL url = new URL("http://127.0.0.1:8080/examples/HelloWorld.txt?a=b");//File file = new File("文件的路径");        /*        *  public String getProtocol(  )     获取该URL的协议名            public String getHost(  )           获取该URL的主机名            public String getPort(  )            获取该URL的端口号            public String getPath(  )           获取该URL的文件路径            public String getFile(  )             获取该URL的文件名            public String getRef(  )             获取该URL在文件中的相对位置            public String getQuery(   )        获取该URL的查询名        */        // System.out.println(url.getProtocol());        // System.out.println(url.getHost());        // System.out.println(url.getPort());        // System.out.println(url.getFile());        // System.out.println(url.getRef());        // System.out.println(url.getQuery());        //如何将服务端的资源读取进来:openStream()        InputStream is = url.openStream();        byte[] b = new byte[20];        int len;        while((len = is.read(b)) != -1){            String str = new String(b,0,len);            System.out.print(str);        }        is.close();        //如果既有数据的输入,又有数据的输出,则考虑使用URLConnection        URLConnection urlConn = url.openConnection();        InputStream is1 = urlConn.getInputStream();        FileOutputStream fos = new FileOutputStream(new File("abc.txt"));        byte[] b1 = new byte[20];        int len1;        while((len1 = is1.read(b1)) != -1){            fos.write(b1, 0, len1);        }        fos.close();        is1.close();    }}


0 0