Java 如何成功返回mp3文件的元数据,同时避免空指针异常

Java 如何成功返回mp3文件的元数据,同时避免空指针异常,java,nullpointerexception,metadata,mp3,Java,Nullpointerexception,Metadata,Mp3,当我试图运行获取元数据并从mp3文件打印出来的程序时,返回的是“线程中的异常”main“java.lang.NullPointerException at project.mp3MetaData.main(musicdj.java:18)”。对于这个类,您需要jid3lib jar。如何避免此异常,是否需要通过底部的标记传递任何变量 package 1234; import java.io.File; import java.io.IOException; import org.farng.

当我试图运行获取元数据并从mp3文件打印出来的程序时,返回的是“线程中的异常”main“java.lang.NullPointerException at project.mp3MetaData.main(musicdj.java:18)”。对于这个类,您需要jid3lib jar。如何避免此异常,是否需要通过底部的标记传递任何变量

package 1234;

import java.io.File;
import java.io.IOException;

import org.farng.mp3.MP3File;
import org.farng.mp3.TagException;
import org.farng.mp3.id3.ID3v1;

public class mp3MetaData {

public static void main(String[] args) throws IOException, TagException {

    // TODO Auto-generated method stub
    File sourceFile = new     File("/Users/JohnSmith/Desktop/MusicTester/1234.mp3");
    MP3File mp3file = new MP3File(sourceFile);
    ID3v1 tag = mp3file.getID3v1Tag();
    System.out.println(tag.getAlbum());
    System.out.println(tag.getAlbumTitle());
    System.out.println(tag.getTitle()); 
    System.out.println(tag.getComment());   


}

}

非常感谢您的帮助。

您的MP3文件可能不包含ID3标签。因此,在使用之前,请检查
标记
是否为
null
。大概是这样的:

public static void main(String[] args) throws IOException, TagException
{
    File sourceFile = new File("/Users/JohnSmith/Desktop/MusicTester/1234.mp3");
    final MP3File mp3file = new MP3File(sourceFile);
    final ID3v1 tag = mp3file.getID3v1Tag();
    if (null == tag)
    {
        System.out.println("No ID3 tag found!");
    }
    else
    {
        System.out.println(tag.getAlbum());
        System.out.println(tag.getAlbumTitle());
        System.out.println(tag.getTitle()); 
        System.out.println(tag.getComment());   
    }
}

谢谢该文件不包含id3标记,因此现在我不必处理该错误。