FileNotFoundException выдается только для .mp3, но не для .pngJAVA

Программисты JAVA общаются здесь
Anonymous
FileNotFoundException выдается только для .mp3, но не для .png

Сообщение Anonymous »

Я разрабатываю игру в Swing, в которой мне бы хотелось использовать как аудио, так и графические ресурсы. Моя проблема в том, что хотя открытие изображений .png работает нормально, открытие моего файла .mp3 всегда вызывает исключение FileNotFoundException, а file.exists() возвращает false.Кажется, ничего не работает. Я исследовал проблему, рассмотрел аналогичный вопрос, поигрался с добавлением и удалением «/» из пути к файлу, сменой каталога mp3, создал новый проект IntelliJ, перезагрузил компьютер и вместо этого попытался открыть файл .wav. , но безуспешно.
Вот упрощенная версия моего кода, в которой я пытаюсь успешно прочитать изображение Baker.png и прочитать аудиофайл QuestOfLegends.mp3 неудачно.
Main.java

Код: Выделить всё

import javax.imageio.ImageIO;
import javax.sound.sampled.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Objects;

public class Main {
public static void main(String[] args) {
String imagePath = "/images/Baker.png";
String audioPath = "/audio/QuestOfLegends.mp3";

System.out.println("The absolute path of this class is: " + new File(".").getAbsolutePath());
System.out.println("The audio package is a directory?: " + new File("/audio").isDirectory());
System.out.println("The images package is a directory?: " + new File("/images").isDirectory());

try {
BufferedImage image = ImageIO.read(Objects.requireNonNull(Main.class.getResource(imagePath)));
System.out.println("Image read successful.");
} catch (IOException e) {
System.out.println("Image read failed.");
}
try {
File file = new File(audioPath);
if (!file.exists()) {
throw new Exception("File does not exit at "+ audioPath);
} else {
AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
Clip clip = AudioSystem.getClip();
clip.open(audioInput);
clip.start();
clip.loop(Clip.LOOP_CONTINUOUSLY);
}
} catch (Exception e) {
System.out.println("Read failed");
throw new RuntimeException(e);
}
}
}
Вот моя иерархия каталогов.
Я пробовал использовать:

Код: Выделить всё

File file = new File(Main.class.getResource("/audio/QuestOfLegends.mp3"));
и у меня все равно та же ошибка.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ot-for-png

Вернуться в «JAVA»