2017-07-27 6 views
-2

ファイル入力ストリームを使用してMP3ファイルを読み込むこのプログラムを作成しています。私の問題のインターネットで検索した後、ここに示すように、配列と関係がありますが、私はJavaの初心者であるため、この問題の修正方法はわかりません: File song = new File(arguments [ 0]);Java MP3ファイルストリームは引数を渡すことができません

私は、このエラーに遭遇:スレッド "メイン" java.lang.ArrayIndexOutOfBoundsExceptionで

例外:0 com.java24hours.ID3Reader.mainで (ID3Reader.java:11)​​

はこちら私のコード:

package com.java24hours; 
import java.io.*; 



public class ID3Reader { 

    private static String[] arguments; 
    public static void main(String[] arguments) { 

     File song = new File(arguments[0]); 
     try (FileInputStream file = new FileInputStream(song)) { 
      int size = (int) song.length(); 
      file.skip(size - 128); 
      byte [] last128 = new byte[128]; 
      file.read(last128); 
      String id3 = new String(last128); 
      String tag = id3.substring(0, 3); 
      if(tag.equals("TAG")) { 
       System.out.println("Title: " + id3.substring(3, 32)); 
       System.out.println("Artist: " + id3.substring(33, 62)); 
       System.out.println("Album: " + id3.substring(63, 91)); 
       System.out.println("Year: " + id3.substring(93, 97)); 
      } else { 
       System.out.println(arguments[0] + " does not contain " + 
         " ID3 info."); 
      } 
      file.close(); 

     } catch (IOException ioe) { 
      System.out.println("Error -- " + ioe.toString()); 
     } 
    } 


} 

誰でもこのことを教えてもらえますか?ありがとうございました!

+0

あなたの書式設定は少しオフです...コード内のどの行が11行目ですか? – Ben

+0

このコードはどのように実行していますか?あなたは入力としてファイル名を渡しましたか? – faboolous

+0

Derp、yep、arguments [0]は存在しないため、逆参照しようとすると失敗します。 'if(arguments.length == 0){ throw new Exception("引数が指定されていません ");次のようなチェックを追加する必要があります。 } ' – Ben

答えて

0

プログラムにファイル名を指定していません。

このプログラムでは、ファイル名(Mp3ファイル名)を引数として、arguments[0]に格納されます。

あなたは引数なしでプログラムを実行した場合:arguments配列が空であるため Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at com.java24hours.ID3Reader.main(ID3Reader.java:11)

java com.java24hours.ID3Reader

あなたはまさにこの出力を取得します。

このプログラムを呼び出すときは、ファイル名を指定する必要があります。 TheDarkSideOfTheMoon.mp3が有効なファイルである必要があり

java com.java24hours.ID3Reader TheDarkSideOfTheMoon.mp3

ファイル名がハードディスクに存在しない場合は、 Error -- java.io.FileNotFoundException: TheDarkSideOfTheMoon.mp3 (No such file or directory)が表示されます。

コードにいくつかの小切手を入れてください。

+0

ありがとう君は! Netbeansでこれをやっていることを追加するのを忘れましたが、そのエラーを修正します!ありがとうございました! – Dany

+0

これで問題が解決したら、私の答えを受け入れることを検討してください:) – faboolous

関連する問題