[Java] 자막 파일에서 대사만 출력하기
File I/O 공부할 겸 만들어 본 자막 파일에서 일본어 대사만 출력하는 프로그램. 프로그램이라고 하기에도 좀 그렇긴 한데,, 코드짜는 동안 그래도 자바에서 파일 읽고 쓰고 하는 건 어느정도 배운 것 같다. 매우 부끄럽지만 그래도 벨로그에 기록해본다😚
사진 일부로 블러처리했다. 개인 만족용이라서,,!
👇 대충 이렇게 생긴 자막 파일을 가지고 있었다. 저기서 일본어 대사 하나하나 복사하는 게 너무 귀찮아서,,,
👇 이렇게 뽑아낼 수 있도록 했다.
정규식을 써보고 싶었는데, 제대로 공부한 적이 없어서 다른 방법을 찾아봤다. 유니코드로도 할 수 있는 방법이 있길래 한 번 적용해봤다. 이 분 블로그에 자세히 적혀있어서 살았다 😄
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
public class fileReader {
public static void main(String[] args){
try{
File fileRead = new File("경로작성/읽어올 파일 이름");
File fileWrite = new File("경로작성/새로 만들 파일 이름";);
FileReader fr = new FileReader(fileRead);
FileWriter fw = new FileWriter(fileWrite);
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String line = "";
while((line= br.readLine())!=null){
for(int i=0;i<line.length();i++){
if(line.charAt(i) >= '\u3040'&& line.charAt(i) <= '\u309F'){
System.out.print(line.charAt(i));
bw.write(line.charAt(i));
bw.flush();
} else if(line.charAt(i) >= '\u30A0'&& line.charAt(i) <= '\u30FF'){
System.out.print(line.charAt(i));
bw.write(line.charAt(i));
bw.flush();
} else if(line.charAt(i) >= '\u4E00'&& line.charAt(i) <= '\u9FFF'){
System.out.print(line.charAt(i));
bw.write(line.charAt(i));
bw.flush();
} else if(line.charAt(i)>='。'){
System.out.print(line.charAt(i));
bw.write(line.charAt(i));
bw.flush();
}
}
bw.newLine();
}
fr.close();
fw.close();
}catch(FileNotFoundException e){
}catch(IOException e){
System.out.println(e);
}
}
}
분명히 더 좋은 방법이 있을테니 더 생각해봐야겠다.
Author And Source
이 문제에 관하여([Java] 자막 파일에서 대사만 출력하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@suzu11/Java-자막-파일에서-대사만-출력하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)