用Java下载网络资源(url)

该博客介绍了如何使用Java从网络下载资源,通过HttpURLConnection建立连接并读取输入流,将数据保存到本地文件。以MP3文件为例,展示了获取URL,打开连接,读取数据并写入文件的过程。同时,提到了通过浏览器开发者工具分析网络请求,找到音频资源链接的方法。
摘要由CSDN通过智能技术生成

从网上下载网络资源,我们可以理解成别人给你东西,然后你把东西放起来,接下来看代码

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"));

最后执行即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值