trc和lrc都是文本格式,不同的是trc中有<150><***>把歌词分隔开了。
package com.util; import java.io.BufferedReader; import java.io.File; import
java.io.FileReader; import java.io.FileWriter; import java.io.IOException;
import java.io.Writer; import java.util.ArrayList; import java.util.HashSet;
import java.util.List; import java.util.Set; public class Turn { /** *
递归获取文件夹下所有文件 * @param path * @return */ public static List<File> files=new
ArrayList<File>(); public static List<File> getFiles(String path) { //获取文件位置
File file= new File(path); //获取文件数组 File[] array = file.listFiles(); for (int i
= 0; i < array.length; i++) { if (array[i].isFile()) { //保存到集合中 files.add(array[
i]); } else if (array[i].isDirectory()) { getFiles(array[i].getPath()); } }
return files; } /** * 读取文件 * @param fileName * @return */ public static String
readFileContent(String fileName) { File file = new File(fileName);
BufferedReader reader= null; StringBuffer sbf = new StringBuffer(); try { reader
= new BufferedReader(new FileReader(file)); String tempStr; while ((tempStr =
reader.readLine()) != null) { sbf.append(tempStr+"\r\n"); } 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(); } /** * @写入文件 * @param fileName
文件名 * @param newPath 输出路径 *@param file1 输出内容 */ public static boolean
writeFileContent(String fileName,String newPath,String file1){ boolean pd=true;
try{ File file =new File(newPath+"/"+fileName+".lrc"); Writer out =new
FileWriter(file); out.write(file1); out.close(); } catch (Exception e) { pd=
false; e.printStackTrace(); } return pd; } } package com.util; import java.io.
File; import java.util.List; import java.util.regex.Matcher; import java.util.
regex.Pattern; public class Servce { public static boolean ioUtil(String path,
String newPath){ //获取每个文件 List<File> files = Turn.getFiles(path); //文件内容 String
file1=null; boolean pd=false; int i=0; for (; i < files.size(); i++) {
//files.get(i).toString()//获取全路径 //files.get(i).getName();//获取文件名 System.out.
println((i+1)+":"+files.get(i).getName()); //读取文件 file1 = Turn.readFileContent(
files.get(i).toString()); System.out.println("正在读取:/n"+file1); //匹配<***>
例如:<151> 的规则 Pattern pattern = Pattern.compile("<(.*?)>"); Matcher matcher =
pattern.matcher(file1); while(matcher.find()){ //
System.out.println(matcher.group(1)); //
System.out.println(file1.replace("<"+matcher.group(1)+">", "")); //提取<***>
//System.out.println(matcher.group()); //把<***>替换为空字符串 file1=file1.replace(
matcher.group(), ""); } //System.out.println(file1); //获取文件名,ti /** *
获取文件标题==文件名 */ Pattern pattern2 = Pattern.compile("(\\[[^\\]]*\\])"); Matcher
matcher2= pattern2.matcher(file1); String name=null; int t=0; while(matcher2.
find()){ t++; if(t<2){ name=matcher2.group(1); } } name=name.replace("[ti:", "")
; // name=name.replace("[ar:", ""); // name=name.replace("[al:", ""); name=name.
replace("]", ""); //写入文件。 Turn.writeFileContent(name, newPath, file1); pd=true;
} System.out.println("一共有 "+i+" 个文件"); return pd; } } package com.util; import
java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.
Pattern; public class Test { public static void main(String[] args) { //获取基础信息
Scanner s=new Scanner(System.in); System.out.println("请输入读取文件夹的路径"); String path
= s.next(); System.out.println("请输入输出的目标路径"); String newPath = s.next(); System.
out.println(Servce.ioUtil(path,newPath)==true?"转换成功":"转换失败"); } }
<>trc歌词格式:
[ti:回到未来] [ar:T-T / 卓卓] [al:夜行动物园] [ly:T-T / 卓卓] [mu:T-T / 卓卓] [ma:顺德] [pu:]
[by:ttpod] [total:134976] [offset:0] [00:00.264]<203>回<151>到<150>未<152>来 <151>-
<151>T-T / 卓卓 [00:01.222]<163>作<143>词<151>:<201>T-T <152>/ <151>卓<150>卓
[00:02.333]<151>作<151>曲<151>:<151>T-T <152>/ <150>卓<154>卓
[00:03.393]<150>编<151>曲<203>:<151>顺<201>德
[00:10.112]<151>我<151>上<151>课<150>趴<150>在<151>桌<302>上
[00:11.318]<152>用<151>耳<202>机<150>偷<152>偷<150>播<251>放
[00:12.526]<150>那<151>时<150>我<151>觉<150>得<153>超<252>酷
[00:13.683]<150>不<151>懂<151>说<152>唱<201>的<201>多<406>样
[00:15.095]<152>凡<201>事<151>总<152>想<202>试<151>试<303>看<151>便<151>开<151>始<150>自<201>己<504>写
[00:17.715]<153>后<201>知<151>后<100>觉<201>越<152>陷<151>越<152>深<153>开<151>始<200>熬<254>起<503>夜
[00:20.237]<153>于<152>是<151>又<101>多<150>了<201>一<151>个<151>秘<152>密
[00:21.471]<149>课<150>堂<150>上<151>少<100>了<151>一<101>丝<150>力<151>气
[00:22.724]<151>把<100>自<152>己<150>锁<101>房<152>间<150>密<100>闭<151>押<151>韵<150>在<152>心<151>里
[00:24.535]<100>刻<151>下<152>了<100>印<151>记
<>lrc歌词格式
- [ti:回到未来] [ar:T-T / 卓卓] [al:夜行动物园] [ly:T-T / 卓卓] [mu:T-T / 卓卓] [ma:顺德] [pu:]
[by:ttpod] [total:134976] [offset:0] [00:00.264]回到未来 - T-T / 卓卓
[00:01.222]作词:T-T / 卓卓 [00:02.333]作曲:T-T / 卓卓 [00:03.393]编曲:顺德
[00:10.112]我上课趴在桌上 [00:11.318]用耳机偷偷播放 [00:12.526]那时我觉得超酷 [00:13.683]不懂说唱的多样
[00:15.095]凡事总想试试看便开始自己写 [00:17.715]后知后觉越陷越深开始熬起夜 [00:20.237]于是又多了一个秘密
[00:21.471]课堂上少了一丝力气 [00:22.724]把自己锁房间密闭押韵在心里 [00:24.535]刻下了印记