Hi Jonathan,
To read a file you need to replace the existing line with this:
DataInputStream dis = new DataInputStream(new FileInputStream(new File(file)));
You're also going to need some try-catch blocks around some of the IO code for it to compile properly.
That's a great job you've done there! I'm glad you decided to take up this project as it adds so much to leJOS NXJ. We'll probably integrate it into the Sound class, perhaps as Sound.playFile(String file) and .playFile(String file, int speed), etc...
We generally like to stick to mimicking the official Java API where possible but it looks hella complex and over-engineered for our purposes:
http://java.sun.com/j2se/1.5.0/docs/api ... mmary.html