Well, my code is as below. I'd like to know why there's always an exception. The mp3 file is in the same directory as the test.java file. What am I doing wrong? Also, how do I read mp3 files from say my Music Library : path - Libraries\Music
import java.io.IOException;
import com.mpatric.mp3agic.ID3v1;
import com.mpatric.mp3agic.InvalidDataException;
import com.mpatric.mp3agic.Mp3File;
import com.mpatric.mp3agic.UnsupportedTagException;
public class test
{
public static void main(String args[])
{
Mp3File mp3file = null;
try {
mp3file = new Mp3File("dom.mp3");
} catch (UnsupportedTagException | InvalidDataException | IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("File not found.");
}
if (mp3file.hasId3v1Tag()) {
ID3v1 id3v1Tag = mp3file.getId3v1Tag();
System.out.println("Track: " + id3v1Tag.getTrack());
System.out.println("Artist: " + id3v1Tag.getArtist());
System.out.println("Title: " + id3v1Tag.getTitle());
System.out.println("Album: " + id3v1Tag.getAlbum());
System.out.println("Year: " + id3v1Tag.getYear());
System.out.println("Genre: " + id3v1Tag.getGenre() + " (" + id3v1Tag.getGenreDescription() + ")");
System.out.println("Comment: " + id3v1Tag.getComment());
}
}
}
Exception
java.io.FileNotFoundException: File not found dom.mp3
at com.mpatric.mp3agic.FileWrapper.init(FileWrapper.java:26)
at com.mpatric.mp3agic.FileWrapper.<init>(FileWrapper.java:19)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:53)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:41)
at test.main(test.java:13)
File not found.
Exception in thread "main" java.lang.NullPointerException at test.main(test.java:19)
The mpatric package is 3rd party. I'm guessing that works fine.
What do you mean by "same directory as you run your java process from"? Can you give me a for instance, please?
Solved it! System.out.println(System.getProperty("user.dir")); Pasted that into my code, found out the root dir. Apparently it's on the same level as the src and bin folders. Pasted the file there and it works like a charm now.
Alright, if anyone was wondering if you can change the home directory, you can't.
If you want to access another folder, you'll have to resort to directory traversal. Say your music file "Ride the Lightning.mp3" is in C:\Users\"Your Username"\Music\
Then to read that you'll have to do something like this:
mp3file = new Mp3File("../../../Music/Misc/Ride the Lightning.mp3");
Cheers to Brian and Chasmo for the helpful posts.