URL
URL表示网络上某一资源的地址,由协议名称和资源名称组成,以冒号隔开。
import java.io.IOException;
import java.net.URL;
public class TestSocket {
public static void main(String[] args) throws IOException {
// 创建实例
URL imooc = new URL("http://www.imooc.com");
URL url = new URL(imooc,"/index.html?username=tom#test"); // ? 后表示参数,#后表示锚点
System.out.println("协议: "+url.getProtocol());
System.out.println("主机: " + url.getHost());
// 若未指定端口号,则使用默认端口号(80),此时getPort()方法返回-1
System.out.println("端口: " + url.getPort());
System.out.println("文件路径: " + url.getPath());
System.out.println("文件名: " + url.getFile());
System.out.println("相对路径: " + url.getRef());
System.out.println("查询字符串: " + url.getQuery());
System.out.println("URL内容: " + url.getContent());
}
}
使用URL读取网页内容
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
public class TestSocket {
public static void main(String[] args) throws IOException {
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);
PrintWriter pw = new PrintWriter("C:/Users/Administrator/Desktop/baidu.txt");
String line;
while ((line = br.readLine()) != null) {
// System.out.println(data);
pw.println(line);
pw.flush();
}
br.close();
isr.close();
is.close();
pw.close();
}
}