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

来源:互联网 发布:iphone用淘宝发烫 编辑:程序博客网 时间:2024/04/30 17:55
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;
    }


}