音乐播放器“找不到文件”例外?

时间:2012-12-13 01:15:52

标签: java file embedded-resource javasound

我正在尝试为一个简单的小型Java游戏添加一个音轨,并且我已经研究了如何在我编译代码的范围内完成它。但是,当我运行它时,我得到一个FileNotFound异常。我正在使用Eclipse,我的wav文件与.class文件位于同一目录中。

这是我的例外:

  

java.io.FileNotFoundException:bach.wav(没有这样的文件或目录)

我的音乐播放器代码:

public static void play()
{
  try
  {
      Clip clip = AudioSystem.getClip();
      clip.open(AudioSystem.getAudioInputStream(new File("bach.wav")));
      clip.start();
  }
  catch (Exception exc)
  {
      exc.printStackTrace(System.out);
  }
 }

3 个答案:

答案 0 :(得分:2)

AudioSystem.getAudioInputStream有一个overloaded method,需要URL。这将根据需要使用缓冲流。由于.wav文件与类文件位于同一位置,因此您可以使用getResource

AudioSystem.getAudioInputStream(getClass().getResource("bach.wav"));

由于playstatic,您需要:

AudioSystem.getAudioInputStream(MyClass.class.getResource("bach.wav"));

答案 1 :(得分:0)

当您说new File("bach.wav")时,您必须将文件放在项目的根文件夹中,其中src和bin文件夹是

答案 2 :(得分:0)

尝试改变:

new File("bach.wav")

为:

new File("bach.wav").getAbsolutePath()