URL(uniform resource locator)是统一资源定位符的简称,一般表现为字符串形式,表示Internet上的某一资源的地址,是Internet中对网络资源进行统一定位和管理的标识,利用URL就可以获取网络上的资源。本实例介绍用三种方式从URL中提取资源信息。
三种从URL中提取资源信息的方式:
通过创建远程对象读取URL指定网页内容;
通过创建读对象读取URL指定网页内容;
通过创建输入流读取URL指定网页内容。
package core;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
public class TextURL {
public static void getHtmlResourceByURL(String htmlFile) throws IOException {// 通过创建远程对象读取URL指定网页内容
URL url = new URL(htmlFile);
URLConnection uc = url.openConnection();// 创建远程对象
InputStream in = uc.getInputStream();// 输入流
int c;
while ((c = in.read()) != -1) {// 循环读取资源信息
System.out.print((char) c);
}
System.out.println();
in.close();
}
public static void getHtmlResourceByReader(String htmlFile) throws IOException {// 通过创建读对象来读取URL指定网页内容
URL url = new URL(htmlFile);
Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream()));// 创建读对象
int c;
while ((c = reader.read()) != -1) {// 循环读取资源信息
System.out.print((char) c);
}
System.out.println();
reader.close();
}
public static void getHtmlResourceByStream(String htmlFile) throws IOException {// 通过创建输入流读取URL指定网页内容
URL url = new URL(htmlFile);
InputStream in = url.openStream();//创建输入流
int c;
while ((c = in.read()) != -1) {// 循环读取资源信息
System.out.print((char) c);
}
System.out.println();
in.close();
}
public static void main(String[] args) throws IOException {
String htmlFile = "http://www.baidu.com"; //百度首页
System.out.println("通过创建远程对象读取URL指定网页内容");
getHtmlResourceByURL(htmlFile);
System.out.println("通过创建读对象读取URL指定网页内容");
getHtmlResourceByReader(htmlFile);
System.out.println("通过创建输入流读取URL指定网页内容");
getHtmlResourceByStream(htmlFile);
}
}
源程序解读
getHtmlResourceByURL()方法读取URL指定网页内容,openConnection()方法创建远程对象连接,getInputStream()方法打开连接读取输入流,循环读取输入流中的资源信息,读完后释放资源。
getHtmlResourceByReader()方法读取URL指定网页内容,创建读对象封装URL对象通过方法openStream()打开的流,循环输出读取的流信息。
getHtmlResourceByStream()方法读取URL指定网页内容,通过创建输入流openStream,来循环输出读取的流信息。