Java MP3文件流无法传递参数

Java MP3文件流无法传递参数,java,arrays,mp3,filestream,indexoutofboundsexception,Java,Arrays,Mp3,Filestream,Indexoutofboundsexception,所以我创建了一个程序,用一个文件输入流读取一个MP3文件。在互联网上查找我的问题后,它与此处所示的数组有关,但是,我不知道如何解决此问题,因为我是Java初学者: 文件宋=新文件(参数[0]) 然后我遇到了这个错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:0 位于com.java24hours.ID3Reader.main(ID3Reader.java:11) 这是我的密码: package com.java24hours;

所以我创建了一个程序,用一个文件输入流读取一个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());
        }
    }


}

有人能帮我吗?谢谢大家!

您没有为程序提供文件名

此程序需要一个文件名(Mp3文件名)作为参数,它将放在
参数[0]

如果在没有参数的情况下运行程序:
java com.java24hours.ID3Reader

您可以得到如下输出: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:0 位于com.java24hours.ID3Reader.main(ID3Reader.java:11)

因为
参数
数组为空

调用此程序时需要提供文件名,例如

java com.java24hours.id3阅读器theDarksideofmon.mp3

其中
mon.mp3的黑暗面必须是有效文件

如果硬盘上没有该文件名,您将获得
错误--java.io.FileNotFoundException:thedarksideofmon.mp3(没有这样的文件或目录)


你应该在你的代码中加入更多的检查

您的格式设置有点不正确。。。代码中的哪一行是第11行?如何运行此代码?您是否将文件名作为输入传递了?Derp,是的,参数[0]不存在,因此尝试取消引用时失败。您应该为此添加一个检查,例如:
if(arguments.length==0){throw new Exception(“未提供参数”);}
另一个可能的问题是,此代码只处理ID3v1元数据。ID3v2元数据位于文件的开头,结构非常不同;看,但是。。。。“我不知道如何解决这个问题,因为我是Java的初学者…”-您不适合要求StackOverflow为您修复程序中的错误。即使你是初学者。这是一个问答网站,不是免费的节目服务。谢谢!我忘了添加我在Netbeans中执行此操作,但我会修复此错误!非常感谢。好吧,如果这解决了你的问题,请考虑接受我的答案: