所以我创建了这个使用文件输入流读取MP3文件的程序。在我的问题的互联网上查找后,它与这里显示的数组有关,但是,我不知道如何解决这个问题,因为我是Java的初学者: 文件歌曲=新文件(参数[0]);
然后我遇到了这个错误:
线程中的异常" main" 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 :(得分:0)
您没有为程序提供文件名。
该程序需要一个文件名(Mp3文件名)作为参数,该名称将放在arguments[0]
中。
如果你运行没有参数的程序:
java com.java24hours.ID3Reader
你得到了这个输出:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at com.java24hours.ID3Reader.main(ID3Reader.java:11)
因为arguments
数组为空。
调用此程序时需要提供文件名,例如
java com.java24hours.ID3Reader TheDarkSideOfTheMoon.mp3
TheDarkSideOfTheMoon.mp3
必须是有效文件。
如果您的硬盘上没有文件名,您将获得一个
Error -- java.io.FileNotFoundException: TheDarkSideOfTheMoon.mp3 (No such file or directory)
。
您应该在代码中添加更多支票!