package lesson2;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class URLdemo01 {
public static void main(String[] args){
try {// 首先我们需要url对象
URL url = new URL("https://webfs.yun.kugou.com/202105132202/cb523efdc1ddd57d72406fb549519826/G238/M08/0B/17/Lg4DAF-0vIOAUFKYAEfZpCdKCBE438.mp3");//然后开启连接
HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();//开启输入流,这个就相当于获得别人给你的东西
InputStream is = urlConnection.getInputStream();//byte就相当于你一次从别人那拿多少东西,就比如别人给你10000块砖,你一次从别人那里拿1024块
byte[] bytes = new byte[1024];//len代表别人一共给你多少块砖
int len;/*
因为我们要下载的是文件,音乐等,所以需要用FileOutputStream来处理,
那么我们什么时候用FileOutputStream什么时候用FileInputStream呢?
首先, 如果我们是往我们本地存东西时就用FileOutputStream
如果我们是从我们本地拿东西时就用FileInputStream
ff.mp3是我们起的名字,注意,这里的后缀需要根据我们下载的东西的后缀来判断
*/
FileOutputStream fos = new FileOutputStream(new File("ff.mp3"));//这个就是当我们接受的东西不是空的时候就把他存进来,关于read方法其实不难,但是需要同志们自己看一下源码,一看就懂,源码很简单。
while((len=is.read(bytes))!=-1){
fos.write(bytes,0,len);}
fos.close();
is.close();
urlConnection.disconnect();} catch (Exception e){
e.printStackTrace();}}}
接下来,去网上找资源,我们以百度云为例
然后我们按F12,接着点击播放
我们会发现出现了很多请求,但我们只找后缀为.m4a(这个只是网易云的音频请求)的请求,接着双击
接着会出现如上页面,我们只需要将连接复制到我们刚才写的类中的
URL url = new URL("https://m10.music.126.net/20210515111111/a2e057f6e4fd9441b3ef4bf0971dacdc/yyaac/055f/0f5c/0308/257b2790c88605d4bf724b1a1d77b733.m4a");
即可,但是别忘了改你存入到本地文件的后缀
FileOutputStream fos = new FileOutputStream(new File("ff.m4a"));