В настоящее время я делаю игру с заранее подготовленными уровнями, и сейчас я храню их в ресурсах.Я хочу решить, как извлечь папку из банки в среде разработки и разработки.
Я попытался скопировать папку, используя указанный ниже метод, и передать src как File defaultWorld = new File(GameData.class.getClassLoader().getResource("worlds/").getFile());
, а пункт назначения - какprivate static File worldsDir = new File("run/worlds");
public static void copyFolder(File src, File dest) {
try {
if (src.isDirectory()) {
if (!dest.exists()) {
dest.mkdir();
}
String[] files = src.list();
for (String file : files) {
copyFolder(new File(src, file), new File(dest, file));
}
} else {
try (InputStream in = new FileInputStream(src)) {
try (OutputStream out = new FileOutputStream(dest)) {
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
Я ожидал, что описанный выше метод будет работать как для dev, так и для рабочей среды, но он выдает FileNotFoundException
при открытии потока вывода файла.