我目前正在制作一款具有预制关卡的游戏,目前我将它们存储在资源中。我想要一个解决方案,以解决如何在生产和开发环境中从 jar 中提取文件夹的问题。
我尝试使用下面给定的方法复制文件夹并将 src asFile defaultWorld = new File(GameData.class.getClassLoader().getResource("worlds/").getFile()); 和 destination as传递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();
}
}
我希望上述方法适用于开发环境和生产环境,但FileNotFoundException在打开文件输出流时会抛出。
神不在的星期二
相关分类