1
Media.jar
|--gmor.wav
+--some.txt
下面的代码无法工作以获取输入流,并抛出 java.lang.NullPointerException。
input = JarFileRead.class.getClassLoader()。getResourceAsStream(“some.txt”);能行得通。如何在jar文件中读取媒体文件(音频文件,而不是文本文件)?
[代码]
import java.io.*;
public class JarFileRead
{
public static InputStream input = null;
public JarFileRead()
{
try
{
input = JarFileRead.class.getClassLoader().getResourceAsStream("gmor.wav");
while(input.read()!=-1)
{
System.out.print(input.read());
}
input.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String [] args)
{
new JarFileRead();
}
}
[/代码]
请注意,JavaSound已知呛在'不可重新定位'的输入流。从'getResourceAsStream'返回的流显然就是这样一个流。改用'getResource()'来取代'URL'。但是实施Stephen C 1st确定的修复,这是直接的问题。 – 2012-03-31 08:03:27