ich versuche folgendes:
/**
* The methode reads the IDv1 tag from the given data file.
* Than the IDv1 tag will be written out at the console.
*
* @param data : String to the data file (mp3 file)
* @return String with the Tag
* @throws IOException if String hasn’t a correct mp3 file.
*/
public void printMp3Tag(String data) throws IOException{
if (data.endsWith(„mp3“)) {
File file = new File(data);
FileReader in = new FileReader(data);
char[] tag = new char[130];
long length=0;
Ich glaube in dem Code geht etwas Prinzipielles schief: http://arachne.uni-muenster.de:8000/num/Vorlesungen/…
(suche nach ‚FileReader‘). [[Filereader liest nämlich die einzelnen Zeichen einer x-beliebigen Datei und nicht deren Namen.]] Ausserdem sollte es bessere Mittel geben um den ID-Tag einer mp3-Datei auszugeben
Oder das Tag versteckt sich irgendwo in der mp3-Datei, wird aber wg. der fehlenden Arraygrösse nicht entdeckt…
Du versuchst mit einem Reader einen binären Stream zu lesen. Dass kann nur schief gehen, da (i.d.R.) die Anzahl der Bytes != Anzahl der Chars ist (denk an UTF-8 Kodierung der Zeichen, …). Daher die IndexOutOfBoundsException.