【发布时间】:2013-01-06 01:38:10
【问题描述】:
我正在尝试将 .wav 文件加载到内存中,但它一直告诉我该文件不存在。
String filename;
public MyClass(String _filename){
filename = _filename;
}
public void run(){
InputStream in = View.class.getClassLoader().getResourceAsStream("/sounds/"+filename);
File inputFile = new File(in.toString());
if(!inputFile.exists()){
System.err.println("Wave file not found: " + in.toString());
return;
}
}
控制台:
未找到波形文件:java.io.FileInputStream@dd5b524
未找到波形文件:java.io.FileInputStream@570add96
该文件位于包文件夹中。它在
myPackage/sounds/write.wav
编辑:
其实我是想加载声音的:
InputStream in = this.getClass().getResourceAsStream("sounds/"+filename);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(in);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
return;
} catch (IOException e1) {
e1.printStackTrace();
return;
}
但是控制台还是报错:
线程“Thread-6”中的异常线程“Thread-7”中的异常 java.lang.NullPointerException 在 com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(未知 来源)在 javax.sound.sampled.AudioSystem.getAudioInputStream(未知来源) 在 com.chrissman.threads.AePlayWave.run(AePlayWave.java:47) java.lang.NullPointerException 在 com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(未知 来源)在 javax.sound.sampled.AudioSystem.getAudioInputStream(未知来源) 在 com.chrissman.threads.AePlayWave.run(AePlayWave.java:47)
【问题讨论】:
-
将声音目录移动到项目的根目录中。
标签: java path resources relative-path