字幕文件srt格式解析
文件 解析 格式 字幕 srt
2023-06-13 09:14:31 时间
解析srt文件,封装为list返回
- 首先新建个class,表示单个字幕数据的实体类
public class SrtEntity {
/** * 字幕序号 */
public int number;
/** * 开始时间 */
public String bg;
/** * 结束时间 */
public String ed;
/** * 字幕内容 */
public String content;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getBg() {
return bg;
}
public void setBg(String bg) {
this.bg = bg;
}
public String getEd() {
return ed;
}
public void setEd(String ed) {
this.ed = ed;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
2.编写srt转list的方法
/** * 解析srt文件,封装为list并返回 * @param srtPath */
public List<SrtEntity> getSrtInfoList(String srtPath){
List<SrtEntity> srtList = new ArrayList<>();
try {
InputStreamReader read = new InputStreamReader(new FileInputStream(srtPath), "utf-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt;
int index = 0;
SrtEntity entity = new SrtEntity();
while ((lineTxt = bufferedReader.readLine()) != null){
index ++;
switch (index % 4){
case 1 :
entity.setNumber(Integer.parseInt(lineTxt));
break;
case 2 :
String[] timeArray = lineTxt.split(" --> ");
entity.setBg(timeArray[0]);
entity.setEd(timeArray[1]);
break;
case 3 :
entity.setContent(lineTxt);
break;
case 0 :
srtList.add(entity);
entity = new SrtEntity();
break;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return srtList;
}
3.测试方法
public static void main(String[] args) {
long begin = System.currentTimeMillis();
FileOperateServiceImpl impl = new FileOperateServiceImpl();
// 解析srt获取list
List<SrtEntity> list = impl.getSrtInfoList("E:\\111.srt");
long end = System.currentTimeMillis();
System.out.println(end - begin);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/200678.html原文链接:https://javaforall.cn
相关文章
- 推荐!国内气象人开发的基于Python的Grads文件解析利器
- Windows文件服务器文件审计,文件监控软件,File_System_Auditor2.53安装教程[通俗易懂]
- 【C#】创建、解析 xml 文件(XmlDocument 方式)
- 记一次Zip Slip任意文件写漏洞
- anaconda3运行ipynb文件_如何打开ipynb文件
- 【说站】Python psd-tools如何转换文件
- 使用zip4j进行Java压缩和解压文件
- java解析zip文件_java解压zip文件
- Python 分割合并大文件
- JVM底层—Java Class字节码文件解析
- Java解析JSON文件「建议收藏」
- .mht文件图片解析工具
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中创建 Python 程序 | 导入 ELFFile 库 | 解析 ELF 文件 )
- 【Unity3D】资源文件 ② ( Unity 中场景文件简介 | 查看场景文件内容 | 场景文件相关操作 | 创建场景 | 打开场景 )
- Apache支持shtml和include文件解析设置教程
- 简单了解linux终端创建文件的2种常用方法
- Java数据导入(读)Excel文件 解析详解编程语言
- 轻松搞定:Linux 中删除文件的简易步骤(linux删除文件c)
- Oracle DBF文件的应用实践(oracle的dbf文件)
- Linux文件管理:拥抱智能的系统未来(linux文件管理系统)
- 命令使用Linux Find命令找出你想要的文件(linux中的find)
- Linux Cat 行号: 快速定位文件中特定行(linuxcat行号)
- 文件Linux下调用.so文件的方法.(linux调用.so)
- 解析Linux系统登录日志文件(linux登录日志文件)
- csv文件快速用Oracle11g导入CSV文件(oracle11g导入)
- 如何在 Linux 和 Windows 之间共享文件?
- 解析MySQL表文件的位置(mysql表文件位置)
- 管理Linux:解析.man文件(.man文件linux)
- Linux XML命令:精通XML文件快速管理(linuxxml命令)
- Linux下的Bin文件:实现自我解析(linux %%bin)
- 深入浅出解析Redis日志文件(解析redis日志文件)
- 用CSV文件快速转入MySQL数据库(csv文件转入mysql)
- 解析MySQL数据库中的frm文件是什么(mysql下.frm文件)
- 解析Redis连接日志文件研究(redis 连接日志文件)
- 专利文件曝光,等待三年的Magic Leap的AR眼镜原来长这样?
- Android中使用sax解析xml文件的方法
- 解析StreamReader与文件乱码问题的解决方法
- Android中init.rc文件的解析分享
- 解析thinkphp中的导入文件标签
- nginx中文件下载指定保存文件名的配置方法