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();
}
}
}
【网络编程】输入一个网址,获取网页内容,并保存到一个html文件中
最新推荐文章于 2022-04-12 21:49:20 发布