大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
解析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);
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/200678.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...