-1

Я делаю простое приложение для воспроизведения звуков в Java. Я могу это сделать, когда храню аудиофайлы в D: диск. Вот кодfile not found exception при попытке прочитать файл в netbeans

in = new FileInputStream("D:\\"+selectedSounds[position]+".wav"); 
//Some code for playing audio 

Затем я разместил аудиофайлы в том же пакете, где присутствует класс Jframe. Но когда я запускаю, он запрашивает исключение fileNotFound. Может кто-нибудь сказать мне, почему это происходит.

in = new FileInputStream(selectedSounds[position]+".wav"); 
// I have also tried 
    new FileInputStream("./"+selectedSounds[position]+".wav"); 

Вот путь к файлу

enter image description here

+0

И это ..what делать с свинг? Не удаляйте тег на столбе, просто потому, что это используется инструментарий GUI. То же самое относится к вашей среде IDE. Теги предназначены для представления того, с чем связана * проблема *. –

ответ

4

Файл волны, содержащийся в пределах «Source Packages» не будет доступна, когда программа поставляется в виде Jar, как файлы будут быть встроенным в Jar, и больше не доступны в качестве файлов.

Вместо этого, вы должны использовать Class#getResourceAsStream, например ...

try (InputStream in = getClass().getResourceAsStream("/PlayAudio/" + selectedSounds[position]+".wav")) { 
    // You now have an InputStream to your resource, have fun 
} catch (IOException | NullPointerException exp) { 
    exp.printStackTrace(); 
}