// 文件url地址
URL xu = new URL(url);
// 文件名
String name = "";
HttpURLConnection conn = (HttpURLConnection)xu.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4238.2 Safari/537.36");
conn.setRequestProperty("Origin", "https://www.bilibili.com");
conn.setRequestProperty("Referer", "https://www.bilibili.com/video/BV" + bv);
BufferedInputStream input = new BufferedInputStream(conn.getInputStream());
System.out.println("开始下载文件:" + name);
System.out.println("文件大小:" + input.available());
File file = new File(name);
if(!file.exists())
{
file.createNewFile();
}
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
byte[] by = new byte[1024];
int num = 0;
while ((num = input.read(by)) != -1)
{
for(int j = 0 ; j < num ; j++)
{
// 这里必须按字节写入,否则会出现错误
out.write(by[j]);
}
}
out.flush();
out.close();
input.close();
System.out.println("文件下载完成===========================>\n\n\n");
原文:https://www.cnblogs.com/xiaoshanji/p/13631762.html