【网络编程】输入一个网址,获取网页内容,并保存到一个html文件中

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Scanner;

/**
 * @Author: Travelmate
 * @CreateTime: 2021/2/21 1:34
 * @Description: 输入一个网址,获取网页内容,并保存到一个html文件
 */
public class UrlHtml {
    
    

    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个网址: ");
        String urlStr = sc.nextLine();
        //html文件名
        Long start = System.currentTimeMillis();
        try {
    
    

            //准备把图片下载到本地位置
            String savePath = "D:/大学作业/Java高级应用编程2020-2021-1/网络编程/";
            //下载后的图片名称
            String fileName = start + ".html";
            //创建URL对象
            URL url = new URL(urlStr);
            //获取URLConnection对象
            URLConnection conn = url.openConnection();
            //设置连接超时时间为3秒
            conn.setConnectTimeout(3 * 1000);
            //获取网络输入流
            InputStream inputStream = conn.getInputStream();
            //从网络输入流中读取字符数组,即从网络中下载的文件内容
            byte[] buffer = new byte[1024];
            int len = 0;
            //字符数组输出流,用来存储追加从网络输入流中读取的字符
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            //从输入流读取字节到buffer数组
            while ((len = inputStream.read(buffer))!=-1){
    
    
                //把buffer数组中的字节输出到字符数组输出流中,即追加进去
                bos.write(buffer,0,len);
            }
            //获取字节数组输出流中的字节数组,该字节数组要准备存储到硬盘本地
            byte[] getData = bos.toByteArray();
            bos.close();

            //创建文件保存位置,即文件夹对象
            File saveDir = new File(savePath);
            //如果文件夹不存在
            if (!saveDir.exists()){
    
    
                //创建文件夹
                saveDir.mkdir();
            }
            //通过文件夹和文件名创建文件对象
            File file = new File(saveDir,fileName);
            //创建文件输出流,用于写文件
            FileOutputStream fos = new FileOutputStream(file);
            //把前面从网络中下载的字节数组写入文件
            fos.write(getData);
            if (fos != null){
    
    
                fos.close();
            }
            if (inputStream != null){
    
    
                inputStream.close();
            }
            System.out.println("提示信息 : " + url + " 下载成功! ");

        } catch (MalformedURLException e) {
    
    
            e.printStackTrace();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44695700/article/details/114141155