一、前言

本人是自学java,无意中发现了B站这个可以学习的网站,但是在B站上面学习实在是太痛苦了,如果网络不好的情况下更加是痛苦,尤其是对于我这种精益求精具有强迫症的人来说简直是雪上加霜。

而且如果要在B站上截图做笔记,也是非常的不快,用Q截图的时候,按住ctrl后就会弹出视频的显示,让人非常的不快,最痛苦就是如果不是会员,还得忍受80%加载的速度。简直是不能忍,播放加速方面感觉也有欠缺。最高只有2.0的加速,这样对于脑回路比较大的我来说,往往是不够的!

有同学就想着将B站的视频下载下来,用爱奇艺万能联播进行播放(这是目前我个人而言觉得比较给力的播放器了,快进不失音),但是下载的视频的格式往往是这样的,用播放器读取视频也不知道这个视频具体是什么信息,导致在做笔记的时候也比较的不方便。

有没有一种好的方法呢?

二、代码实现

废话就不多说了,直接代码上撸起来。

1.分析下载后的文件格式

包含.info的文件信息,就包含了视频的文件名!

我这里下载的是尚硅谷的学习视频资料,这家视频还不错,值得去看看。

看到没 ,文件格式就是json格式,那么既然是json,就好解决了。思路就是读取这个文件,然后解析出这个字段的name值,再将视频文件重命名即可。

话不多说,代码撸起。

2.代码实现:Java语言实现

这段代码是一个工具类,具体作用就是读取这个.info的文件,然后将它的数据以String格式返回。

package bilibili;import java.io.*;public class ReadFile {public static String readFileContent(String fileName) {File file = new File(fileName);BufferedReader reader = null;String encoding = "UTF-8";StringBuilder sbf = new StringBuilder();try {reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),encoding));String tempStr;while ((tempStr = reader.readLine()) != null) {sbf.append(tempStr);}reader.close();return sbf.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e1) {e1.printStackTrace();}}}return sbf.toString();}
}

3.主要代码实现、

package bilibili;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import util.StringUtils;import java.io.File;
import java.util.Objects;/*** @author ilongsay* @date: Create in 2020-04-11 18:48*/
public class BilibiliSetTitle {public static void renameFile(String filePath) {System.out.println("========start transform=============");File file = new File(filePath);//获取所有的文件,不包括子文件File[] listFiles = file.listFiles();for (File listFile : Objects.requireNonNull(listFiles)) {if (listFile.isDirectory()) {//如果是文件夹,读取文件夹内的文件File file1 = new File(listFile.getAbsolutePath());File[] listFiles1 = file1.listFiles();String title=null;for (File file2 : Objects.requireNonNull(listFiles1)) {String fileName = file2.getName();//包括info的就是其信息if (fileName.contains(".info")) {String fileContent = ReadFile.readFileContent(file2.getAbsolutePath());JSONObject object = JSON.parseObject(fileContent);title = object.get("PartName").toString();//这里的break就是减少循环次数,提升性能break;}}for (File file2 : listFiles1) {String fileName = file2.getName();if (fileName.contains(".flv")&& StringUtils.isNotEmpty(title)) {//新的文件名称String newNamePath = listFile.getAbsolutePath() + "/" + title+".flv";File newFile = new File(newNamePath);file2.renameTo(newFile);break;}}}}System.out.println("========endTransform============");}public static void main(String[] args) {//b站下载的文件夹目录,如果要批量更改多个目录也可以自己实现一下,原理都是一样的//目前只实现了单个文件夹修改renameFile("E:\\study\\77774320");}
}

4.需要添加的pom依赖:

 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version>
</dependency>

5.生成后的结果图

万能联播效果图

一般我都是开2.3倍加速,听起来不错。回退,快进也特别方便,没有烦人的加载中......美滋滋

(一)自学java必备技能开头篇:下载哔哩哔哩文件改名相关推荐

  1. 浅谈工厂设计--java必备技能

    浅谈工厂设计–java必备技能 说到工厂,我就联想到了亚洲的大工厂富士康–接过订单然后按照固定的模板生产商品,其实java中工厂类中的工厂方法也是一样,接过参数,根据参数来生产需要的商品: 今天我们一 ...

  2. Java必备技能:IDEA一定要懂的32条快捷键

    这些IntelliJ IDEA键盘快捷键可以让你专注于编写代码,让你的双手在键盘上起舞. 1,搜索文件名 ↑ Shift 快速连续按两下 2,显示便捷提示和快速修复 ⌘ Cmd + ⤶ Enter 3 ...

  3. Java基础入门教程,零基础小白自学Java必备教程

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.方法重写 2.Super和this关键字 3.抽象类 (Ⅱ)能力目标 1.能够写出类的继承格式 2.能够说出super可 ...

  4. 【Java必备技能五】微信支付之JSAPI方式(公众号支付)超详细实现步骤

    目录 一.JSAPI支付概述 二.名词解释 三.签名算法 四.设置支付目录和授权域名

  5. java篇:自学Java到底需要多久呢?

    总结,个人认为,零基础学Java只需要6个月时间左右,也要根据基础不同,学习能力不同有所差异,也是很正常的! 第一阶段:基础技能 首先要明确一件事,自学Java可行但不代表轻松容易. 我是觉得要先把J ...

  6. 自学Java半年,能找到工作嘛?

    坦白来讲虽然自学比较难,但是通过自学的方式,顺利找到工作的人还是有的,如果你是科班出身,有编程基础,而且自学能力比较强的话,可以尝试一下自学这条路, 现在推荐一条Java自学路线图,只要这些你都掌握了 ...

  7. 一线互联网架构师筑基必备技能之Java篇,工作感悟

    前言 前段时间发放了学习资料给予自学java的同学们,自学虽好,但是架不住没有老师讲解重侧点(实际上许多培训班的老师也是水分多多,甚至无实战经验),今天我就抽空把java零基础入门(六个月)的学习重点 ...

  8. 我的程序员之路:自学Java篇

    序章 时光疾驰,从事IT行业已两年有余. 16年11月开始自学Java,从此开启自学之路,后来实习期自学大数据.python.爬虫等,最终成长为一名平凡的程序员.回首望去,一路上的过往历历在目,有初学 ...

  9. 【转载】运维职业向!我是怎么入得运维行业?运维工程师入门必备技能以及打怪升级篇...

    前言:转载 陈浩一个从事安全运维向的前辈文章.写的很好.人非常nice,遇到了问题,qq上很快就回复了我. 大道三千 入门最难,凡事入了行,也就什么都好说了,好的自然不断努力奋斗修行,不好的自然很快就 ...

最新文章

  1. java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...
  2. Python 基础 - Day 1 Assignment - Login 模拟登陆
  3. mysql在linux下的安装(5.7版本以后)
  4. 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?
  5. 函数不可访问_Java中的不可变总结
  6. oracle x kglob,x$kglob x$kgllk x$kglpn
  7. 奈学教育CEO孙玄:成为一个有情怀的工程师,我的12点思考
  8. Matlab画图技巧: 不需要敲代码的傻瓜式操作流程
  9. 关于QQ邮箱登录提示一键登录解决方案
  10. python math类
  11. 大数据Flink面试考题___Flink高频考点,万字超全整理(建议)
  12. 利用LaTeX写硕士论文历程之安装配置环境
  13. Ceph使用系列之——Ceph RGW使用
  14. echarts 绘制省份地图 [ 把不同省份的市合并在一起 ]
  15. 苏宁精准营销之生成人群包的演进
  16. ​大数据和云计算技术周报(第37期)
  17. Everything 1.3.3 Beta 简体中文绿色版 | 极速文件搜索工具
  18. C#生成电子印章源码
  19. 路径分割_splitpath_s
  20. ms office word2013教程 - 利用邮件合并批量制作带照片的准考证

热门文章

  1. 做股权激励时,要不要进行绩效考核
  2. Word2Vec之Skip-Gram与CBOW模型
  3. 软件缺陷静态分析CodeSonar
  4. 这些专业配音软件你值得拥有
  5. 88steamCSGO即开即取回的开箱网站,CSGO皮肤交易平台
  6. 用什么方法可以将Word转换成PDF文档?
  7. 高等数学:一元函数微分学
  8. 安全扫描工具-appscan
  9. 摘自《大江大河1949》
  10. android高德地图后台运行,Android手把手教你集成高德地图