Java——获取网页内容并在本地生成HTML文件
熊孩纸
阅读:632
2021-06-02 17:44:55
评论:0
使用java.net包下的URL类,可以将一个网页(链接)封装成一个URL对象。
URL对象有一个openStream()
方法,使用该方法可以获取该网页的输入流,我们可以通过读取输入流的方式获得网页的内容,并通过输出流写入HTML文件中。
方式一:
使用此方法需要指定输入流和输出流的字符编码,否则可能会出现乱码
步骤:
1. 通过URL对象的openStream()
方法获得网页的字节输入流
2. 将字节输入流转换成字符输入流
3. 为字符输入流加缓冲区
4. 定义一个字节输出流
5. 将字节输出流转换成字符输出流
6. 将读取到的数据写入文件
7. 关闭流
public void way_1() throws Exception {
InputStream inputStream;//接收字节输入流 InputStreamReader inputStreamReader;//将字节输入流转换成字符输入流 BufferedReader bufferedReader;//为字符输入流加缓冲 FileOutputStream fileOutputStream;//字节输出流 OutputStreamWriter outputStreamWriter;//将字节输出流转换成字符输出流 URL wangyi = new URL("http://www.163.com/"); inputStream = wangyi.openStream(); inputStreamReader = new InputStreamReader(inputStream, "gb2312"); bufferedReader = new BufferedReader(inputStreamReader); String s; File dest = new File("src/wangyi.html"); fileOutputStream = new FileOutputStream(dest); outputStreamWriter = new OutputStreamWriter(fileOutputStream, "gb2312"); while ((s = bufferedReader.readLine()) != null) { outputStreamWriter.write(s); } outputStreamWriter.close(); fileOutputStream.close(); bufferedReader.close(); inputStreamReader.close(); inputStream.close(); }
方式二:
使用此方法不需要指定输入流和输出流的字符编码(因为是通过字节的方式)
步骤:
1. 通过URL对象的openStream()
方法获得网页的字节输入流
2. 为字节输入流加缓冲
3. 创建字节输出流对象
4. 为字节输出流加缓冲
5. 读取数据,并写入HTML文件
6. 关闭流
public void way_2() throws Exception{
File dest = new File("src/wangyi2.html"); InputStream is;//接收字节输入流 FileOutputStream fos = new FileOutputStream(dest);//字节输出流 URL wangyi = new URL("http://www.163.com/"); is = wangyi.openStream(); BufferedInputStream bis = new BufferedInputStream(is);//为字节输入流加缓冲 BufferedOutputStream bos = new BufferedOutputStream(fos);//为字节输出流加缓冲 int length; byte[] bytes = new byte[1024*20]; while((length = bis.read(bytes, 0, bytes.length)) != -1){ fos.write(bytes, 0, length); } bos.close(); fos.close(); bis.close(); is.close(); }
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。