所以我正在开发一款游戏,我需要关于我的文件 i/o 以保存文件的帮助。目前我有类似这样的设置可以从他们那里读取:
public static void savesManagementMenu() {
for (int i = 1; i < 4; i++) {
fileURL = JRPG.class.getResource("Saves/save" + i + ".txt");
System.out.println(fileURL);
if (fileURL != null) {
saveMenuSaveFile = new File(fileURL.getPath());
try {
//System.out.println("File # " + i +" exists.");
saveMenuSaveFileReader = new FileReader(fileURL.getPath());
saveMenuFileScanner = new Scanner(saveMenuSaveFileReader);
saveMenuInfo[i - 1][0] = saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuInfo[i - 1][1] = saveMenuFileScanner.nextLine();
saveMenuInfo[i - 1][2] = saveMenuFileScanner.nextLine();
} catch (FileNotFoundException ex) {
Logger.getLogger(JRPG.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
saveMenuInfo[i - 1][0] = null;
}
}...
从 Netbeans 使用此方法运行/编译将使应用程序/游戏看起来在“E:\Copy\JRPG\build\classes\jrpg\Saves”中。
当我清理和构建项目并尝试通过命令行运行它时,我得到如下响应:
jar:file:/C:/Users/Adam/Desktop/New%20folder/JRPG.jar!/jrpg/Saves/save1.txt
2013 年 8 月 22 日晚上 11:54:18 jrpg.JRPG savesManagementMenu 严重:null java.io.FileNotFoundException: file:\C:\Users\Adam\Desktop\New%20folder\JRPG.jar !\jrpg\Saves\save1。 txt(文件名、目录名或卷标语法不正确)
游戏只是冻结了。当我运行编译的代码时,我希望它查看的保存文件路径是:C:\Users\Adam\Desktop\New folder\Saves
哪个是相对文件路径?如何解决此问题,以便无论我从哪里运行文件,我的编译代码都可以在正确的位置查找?(假设我的朋友想从他的电脑上运行游戏,除了他把“新文件夹”文件夹放在他的桌面以外的地方)