学习视频来自慕课网,感谢~
初学者,代码中的相关知识,以后再给自己做补充。
URL百度百科:
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
/*
* 使用URL读取页面内容
*/
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//创建一个URL实例
URL url=new URL("https://www.baidu.com");
System.out.println("协议:"+url.getProtocol());
//通过URL的openstream方法获取URL对象所表示的资源的字节输入流
InputStream is=url.openStream();
//将字节输入流转换为字符输入流
InputStreamReader isr =new InputStreamReader(is,"utf-8");
//为字符输入流添加缓冲
BufferedReader br =new BufferedReader(isr);
//读取,一次读取一行
String data=br.readLine();
//循环读取
while(data!=null) {
System.out.println(data);
//再读取下一行
data=br.readLine();
}
//关闭
br.close();
//关闭字符输入流
isr.close();
//关闭字节输入流
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
此处URL的构造方法参照API文档:URL(String spec)
从String
表示中创建一个 URL
对象。
关于InputStreamReader:InputStreamReader是从字节流到字符流的桥梁:它读取字节,并使用指定的charset
将其解码为字符。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
这里如果不指定utf-8编码,则会生成乱码。
运行结果:
将去除第一行的文本编写为html的文本文档打开,并且改变编码为中文简体: