Я переписываю свои классы, которые загружают ресурсы внутри моей игры. Мой профессор сказал, что мы стараемся не использовать знак «/» в нашем Strings/File/URL при загрузке наших ресурсов. Я использую Classname.class.getResource(someString)
, чтобы получить URL-адреса, чтобы я мог загружать мои ресурсы, которые отлично работают (см. Код ниже). Я прочитал Oracle Docs для class.getResource()
, и там мне нужно использовать "/"
. Я хотел бы узнать, есть ли лучший способ для загрузки ресурсов (изображения и аудиофайлы в основном), чем использование ClassName.class.getResource()
? У меня нет требований к скорости или памяти. Вот пример того, как я загружаю BufferedImage
.Java Загрузка ресурсов (изображений, аудио, текстовых файлов и т. Д.) Без использования знака «/» из-за проблем с переносимостью и использования File.separator
try {
// Example path = "/menu/background2.png"
sourceImage = ImageIO.read(ResourceManager.class.getResource(path));
} catch (IOException e) {
System.out.println("Failed to load: " + path);
e.printStackTrace();
}
Это рекомендуемый способ. – icza
При загрузке ресурсов вы должны использовать '/', поскольку это часть требований URL. В системах Windows пути к файлам с '/' автоматически преобразуются в «\», но «\» автоматически не преобразуется в * nix-системах. Для путей к файлам вы должны, по возможности, использовать «File.pathSeparator», но, как я уже сказал, это не требуется – MadProgrammer