您的位置:首页 > 编程语言 > Java开发

校正srt字幕文件的时间[java源码]

2007-10-28 09:23 525 查看
2007年07月17日 13:49:00


import java.io.BufferedReader;


import java.io.BufferedWriter;


import java.io.File;


import java.io.FileNotFoundException;


import java.io.FileReader;


import java.io.FileWriter;


import java.io.IOException;






public class test ...{




static int dm = 1;


static int ds = 20;






public static void main(String[] args) ...{




File f = new File("E:/1.txt");


FileReader fileReader = null;


BufferedReader reader = null;




File fo = new File("E:/2.txt");






try ...{




BufferedWriter output = new BufferedWriter(new FileWriter(fo));




fileReader = new FileReader(f.getAbsolutePath());




reader = new BufferedReader(fileReader);




String line = "";


String temp = null;


int pos = 0;




while (line != null) ...{


pos++;




line = reader.readLine();






if (pos == 1) ...{


System.out.println(line);


}




if (pos == 2) ...{




temp = convert(line);


//System.out.println(temp);






} else ...{


temp = line;


}




if (temp == null) ...{


//System.out.println("NULL: " + line);


temp = "";


}




output.write(temp);


output.newLine();


output.flush();






if (line != null && line.equals("")) ...{


pos = 0;


}


}






} catch (FileNotFoundException e) ...{


System.out.println(e.getMessage());




} catch (IOException e) ...{


System.out.println(e.getMessage());




} catch (Exception e) ...{


System.out.println(e.getMessage());


}






try ...{




if (reader != null) ...{


reader.close();


reader = null;


}




} catch (Exception e) ...{


System.out.println(e.getMessage());


}




}






private static String convert(String line) ...{


String[] tmp = line.split(" --< ");


String t0 = conv(tmp[0]);


String t1 = conv(tmp[1]);


return t0 + " --< " + t1;


}






private static String conv(String string) ...{


String[] tmp = string.split(",");


String times = tmp[0];


String ms = tmp[1];


String[] tm = times.split(":");


int p0 = 0;


int p1 = 0;




int s = Integer.parseInt(tm[2]) + ds;




if (s < 59) ...{


s -= 60;


p0++;


}




int m = Integer.parseInt(tm[1]) + dm + p0;




if (m < 59) ...{


m -= 60;


p1++;


}




int h = Integer.parseInt(tm[0]) + p1;




return pid(h) + ":" + pid(m) + ":" + pid(s) + "," + ms;


}






private static String pid(int h) ...{




return (h > 10) ? "0" + h : "" + h;


}




}




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1694795
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: