URL类
在java.net包中定义了URL类,该类用来处理有关URL的内容。对于URL类的创建和使用,下面分别进行介绍。
1.创建URL类
URL类的构造方法主要有如下几种
URL(String spec):使用指定的字符串构建。
URL(String protocol, String host, int port, String
file):使用指定的协议、主机名、端口号、文件名创建。
URL(String protocol, String host, String
file):使用指定的协议、主机名、文件名创建。
URL(URL context, String spec):使用基地址和相对URL创建。
【示例14-3】URL类的构造方法应用举例,其代码如下所示。
importjava.net.MalformedURLException;
importjava.net.URL;
publicclassTest {
publicstaticvoidmain(String args[]) {
try{
//创建URL
URL url1 =newURL("http: //www.sina.com.cn");
URL url2 =newURL("http","www.263.net","index.html");
}
catch(MalformedURLException e) {//捕获MalformedURLException异常
e.printStackTrace();
}
}
}
分析:示例定义了类Test,Test包含一个main()方法。main()方法采用两种形式创建了URL类的实例url1和url2。需要注意的是,URL类的构造方法都会产生可控异常MalformedURLException,需要对其进行处理。
2.使用URL类
使用URL类的常用方法主要有如下几种。
String
getAuthority():获得此URL的授权部分。
Object
getContent():获得此URL的内容。
int
getDefaultPort():获得与此URL关联协议的默认端口号。
String getFile():获得此URL的文件名。
String
getHost():获得此URL的主机名(如果适用)。
String
getPath():获得此URL的路径部分。
int getPort():获得此URL的端口号。
String
getProtocol():获得此URL的协议名称。
String
getQuery():获得此URL的查询部分。
String
getRef():获得此URL的锚点(也称为"引用")。
String
getUserInfo():获得此URL的userInfo部分。
URLConnection
openConnection():返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。
InputStream
openStream():打开到此URL的连接,并返回一个用于从该连接读入的InputStream。
boolean sameFile(URL
other):比较两个URL,不包括片段部分。
protected void set(String protocol,
String host, int port, String file, String
ref):设置URL的字段。
static void
setURLStreamHandlerFactory(URLStreamHandlerFactory
fac):设置应用程序的URLStreamHandlerFactory。
【示例14-4】使用URL类获取相关网络资源信息的应用举例,其代码如下所示。
importjava.net.MalformedURLException;
importjava.net.URL;
publicclassTest {
publicstaticvoidmain(String args[]) {
try{
URL url =newURL("http://www.263.net/index.html");
//创建URL
System.out.println("协议:"+ url.getProtocol());//获得协议信息
System.out.println("端口:"+ url.getPort());//获得端口信息
System.out.println("主机:"+ url.getHost());//获得主机信息
System.out.println("文件:"+ url.getFile());//获得文件信息
}
catch(MalformedURLException e) {//捕获MalformedURLException异常
e.printStackTrace();
}
}
}
分析:示例定义了类Test,Test包含一个main()方法。main()方法首先以指定的URL地址创建了URL类的实例url。然后,分别调用getProtocol()、getPort()、getHost()、getFile()方法获取该URL的相关信息。另外,对URL类的构造方法产生的异常MalformedURLException进行了捕获。