chanting an air of joyous bliss

普段の生活で見逃しがちな面白いことを書いていく
そんなブログです

MP3分割プログラム

2009-02-23 21:08:48 | Java
MP3ファイルを分割するプログラムを以下に示す
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
public class Main {
    /**ファイル名 */
    private static final String AUDIO_PATH = "C:\\split\\今日は1日アニソン三昧20081231_.mp3";
    /**ストリームから読み込むバッファサイズ */
    private static final int DATA_BUF = 1024*1024*10;

    public static void main(String[] args) throws Exception{
        //mp3ファイルの取得
        File file = new File(AUDIO_PATH);
        //mp3ファイル名の取得
        String fileName = file.getName();
        //入力ストリームの生成
        InputStream in = new FileInputStream(file);
        //分割するバッファの生成(1MB)
        byte buf[] = new byte[DATA_BUF];
        //ストリームからファイルを読み込む
        int eof = in.read(buf);
        //出力ストリームの生成
        FileOutputStream out = new FileOutputStream(
                new File("C:\\split\\"+fileName.replaceAll(".mp3", "00.mp3")));
        //入力ストリームから取得したデータを出力ストリームへ書き込む
        out.write(buf);
        //出力ストリームを閉じる
        out.close();
        //入力ストリームが終わりに達しているのならプログラムを終了する
        if(eof==-1){
            in.close();
            return;
        }else{
            buf = new byte[DATA_BUF];
        }
        int i=1;
        //入力ストリームの終わりまでデータを読み込み、出力ストリームに書き込む
        while((eof = in.read(buf))!=-1){
            String index = (i<10)?"0"+i:i+"";
            out = new FileOutputStream(
                    new File("C:\\split\\"+fileName.replaceAll(".mp3", index+".mp3")));
            out.write(buf);
            i++;
            buf = new byte[DATA_BUF];
        }
        in.close();
    }
}
 
・注意点
1.バッファのサイズを40MBにするとメモリ不足の例外でプログラムが止まる
2.800MBのサイズの分割に要する時間は約2分

コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« SQL PLUS | トップ | 全角かな、カタカナチェック »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
再生 (たか)
2009-08-28 12:36:57
このコードだと、ファイルの分割自体はできるでしょうが、分割したものを再生することはできないんじゃないでしょうか?
返信する
Unknown (TRIPLE)
2009-10-12 22:34:44
コメントどうもです
上記プログラムで分割したMP3もちゃんとプレイヤーで再生できることを確認しています
MP3って実は余計なデータが入っていない純粋な音楽フォーマットだったりします
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Java」カテゴリの最新記事