我正在创建一个游戏,我希望它全部从可运行的 jar 文件中运行,所以我的所有资源(图像和文本文件)都将在 jar 文件中。
我遇到的问题是处理 jar 内的文件非常困难。
我正在使用 eclipse,它有时会欺骗你,因为如果你从 eclipse 运行它,它会找到文件,但如果你导出它就不会。
我只想知道基本正确的露水方法:
- 我需要能够加载图像(不知何故,我已经在工作了。我对它进行了一些修改并意外地做到了,所以我不知道它是如何工作的)
- 我需要能够从文本文件中读取(我也有这个工作,再次,偶然和数小时的猜测。)
- 我需要能够写入存在并且在 jar 中的文本文件。这就是让我觉得我做错了的原因。我想要做的就是能够保存某些设置,以便它们在下一次加载时工作,我不知道如何写入文件。
在eclipse(Indigo)中,我创建了一个文件夹名称“资源”并将其标记为源文件夹。我把我所有的图像和文本文件都放在那里。我读到这样的图像:
public static Image ammo = new ImageIcon(TankMazeGame.class.getResource("ammo.png")).getImage();
我读了这样的文本文件:
InputStream is = TankMazeRunner.class.getClassLoader().getResourceAsStream("Settings.txt");
Scanner settingsReader = new Scanner(new InputStreamReader(is));
我正在像这样写入我的设置文件,但它并没有真正起作用,所以这就是我需要帮助的地方。
File settingsFile = new File(DisplayMenu.class.getClassLoader().getResource("Settings.txt").getFile());
try {
OutputStream os = new FileOutputStream(settingsFile, true);
PrintWriter pw = new PrintWriter(os, true);
pw.write("SIZE: " + TankMazeRunner.WIDTH + "\n");
os.flush();
pw.close();
} catch (Exception e2) {
System.out.println("Error");
}
正如您可能从我的代码中看出的那样,我迷路了。