| 网站首页 | 自考 | 中考 | 高考 | MBA | 考研 | 成人高考 | 报关员 | 导游 | 司法 | 计算机 | 会计 | 英语 | 医学 | 小学 | 初中 | 高中 | 法律硕士 | 建筑工程 | 留言 | 
最新公告:     本站一直领先的专注于考试的网络媒体与服务平台,请大家互相支持!  [admin  2006年9月7日]        
 
您现在的位置: 试卷下载网 >> 计算机 >> JAVA认证 >> 文章正文
 
 
 
最新推荐 更多内容
 
 
相关文章
JAVA题库:考考你2
JAVA题库:考考你4
JAVA题库:格林模拟试题三…
JAVA题库:格林模拟试题一…
Java网络编程之URI、URL…
Java认证模拟题及分析(2…
Java网络编程之URI、URL…
Java认证模拟题及分析(3…
Java认证模拟题及分析(1…
Java网络编程之URI、URL…
更多内容
Java网络编程之URI、URL研究专题五(1)           
Java网络编程之URI、URL研究专题五(1)
作者:佚名 文章来源:不详更新时间:2006-9-22 12:43:29

  在专题的上篇 Java 网络 编程之URI、URL研究专题中我们介绍了URI、URL的慨念和体系结构,以及如何使用URI在本文中我将继续向大家介绍如何使用URL和MIME(多用途的网际邮件扩充协议)的概念以及它如何与URL发生联系的。

使用URL

网络API通过提供URL类让我们能在源代码层使用URL。每一个URL对象都封装了资源的标识符和协议处理程序。前面的技巧显示了获得URL对象的途径之一是调用URI对象的toURL()方法。但是这种选择不一定方便(为什么在需要URL对象的时候必须建立URI对象呢?)。

作为代替,你可以调用URL构造函数来建立URL对象。你也可以调用URL的方法来提取URL的组件,打开一个输入流(input stream)从资源中读取信息,获得某个能方便检索资源数据的对象的引用,比较两个URL对象中的URL,获得到资源的连接对象,该连接对象允许代码了解(并写入)更多的资源的信息。

URL类有六个构造函数。其中最简单的是URL(String url),它有一个String类型的参数,把URL分解为自己的组件,并把这些组件存储在一个新的URL对象中。如果某个URL没有包含协议处理程序或该URL的协议是未知的,其它的五个构造函数会产生一个java.net.MalformedURLException对象。

下面的代码片断演示了使用URL(String url)建立一个URL对象,该对象封装了一个简单的URL组件和http协议处理程序。

URL url = new URL ("http://www.informit.com");

一旦拥有了URL对象,你就可以使用getAuthority()、getDefaultPort()、 getFile()、 getHost()、 getPath()、getPort()、 getProtocol()、getQuery()、getRef()和getUserInfo(). The getDefaultPort()等方法提取各种组件。如果URL中没有指定端口的部分,getDefaultPort()方法返回URL对象的协议处理程序使用(资源定位)的默认端口。

getFile()方法返回路径和查询组件的结合体。getProtocol()方法返回决定资源的连接类型(例如http、mailto、ftp)的协议的名称。getRef()方法返回URL的部分片断(我们所知道的引用)。最后,getUserInfo()方法返回授权机构组件的用户信息部分。

在这些URL组件提取方法中,如果某些组件不存在(如果没有给URL对象的协议处理程序指定默认的端口,它也返回-1),这些方法就返回null或-1。

作为这些组件提取方法的补充,你还可以调用openStream()方法检索java.io.InputStream引用。使用这种引用,你可以用面向字节的方式读取资源。

列表4是URLDemo1的源代码。该程序从命令行参数建立了一个URL对象,调用URL组件提取方法来检索该URL的组件,调用URL的openStream()方法打开与资源的连接并返回一个用于从资源读取字节数据的InputStream引用,读取/打印这些字节,关闭输入流。

列表4: URLDemo1.java

// URLDemo1.java

import java.io.*;

import java.net.*;

class URLDemo1

{

ublic static void main (String [] args) throws IOException

{

if (args.length != 1)

{

System.err.println ("usage: java URLDemo1 url");

return;

}


  共2页: 1 [2] 下一页      [

URL url = new URL (args [0]);

System.out.println ("Authority = "+ url.getAuthority ());

System.out.println ("Default port = " +url.getDefaultPort ());

System.out.println ("File = " +url.getFile ());

System.out.println ("Host = " +url.getHost ());

System.out.println ("Path = " +url.getPath ());

System.out.println ("Port = " +url.getPort ());

System.out.println ("Protocol = " +url.getProtocol ());

System.out.println ("Query = " +url.getQuery ());

System.out.println ("Ref = " +url.getRef ());

System.out.println ("User Info = " +url.getUserInfo ());

System.out.print (’ ’);

InputStream is = url.openStream ();

int ch;

while ((ch = is.read ()) != -1)

System.out.print ((char) ch);

is.close ();

}

}
在命令行输入java URLDemo1 http://www.javajeff.com/articles/articles/html后,上面的代码的输出如下: 
  共2页: 上一页 [1] 2      [

文章录入:admin    责任编辑:admin 
 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

     
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |