2012-02-17 148 views
0

Javaを使って.mp3ファイルをストレートアップバイナリ(1と0だけ)のテキストファイルに変換することは可能ですか?私はAudioInputStreamの使用を含み、個々のバイトをデコードするいくつかの方法を含むだろうと思っていますが、どこから始めたらいいですか?MP3をバイナリに変換する

ありがとうございます!

+9

ファイル_are_バイナリ。生のビットをASCIIの「1」バイトと「0」バイトに変換するように求めていますか? – SLaks

+0

それは気違いでしょう。各出力ファイルは膨大です! –

+0

@JustinSatyr〜8倍大きいだけ.. – paislee

答えて

1

確かに可能ですが、特別なオーディオストリームを使用する必要はありません。あなたが探しているのは、任意のタイプのファイルを1文字と0文字のファイルに変換することです。私はこのコードをテストしていないが、アルゴリズムは明確でなければならない。

FileInputStream fin = new FileInputStream(new File(path)); 
BufferedWriter bw = new BufferedWriter(new FileWriter(otherpath)); 
byte contents[] = new byte[100]; 
while (fin.read(contents)!= -1) 
{ 
    for (byte b : contents) 
    for (int x = 0; x < 8; x++) 
     bw.write(b>>x & 1); 
} 

編集:見た目だけを見たい場合は、16進エディタで任意の種類のファイルを開くことができます。

+0

このアルゴリズムを逆にすると(個々の1と0を読み込み、それを私が望むどんなタイプのファイルとしても保存します)、それも機能しますか? – roboguy12

+0

単純な実装を試してみると、いいえ。バイトを8個に分割して1と0を出力することに注目してください。そのバイトがファイルに書き戻される前に再結合する必要があります。 '8文字読み込み - > 1バイトに変換 - >書き込み'のようなものがあります。それがあなたがしたいタスクなら、[HxD](http://mh-nexus.de/en/hxd/)のような既存のソリューションを使用してください。 – Thomas

3

MP3ファイルは無視する必要があります。ちょうどそれをバイナリとして扱います。バイトごとにファイルを読み込み、各バイトを「バイナリ」表現に変換します。

1

コマンドプロンプトを開き、xxd -b filename.mp3と入力します。