gpt4 book ai didi

java - 尝试让文件路径适用于 Java/Netbeans 中的所有版本

转载 作者:行者123 更新时间:2023-12-01 04:27:26 24 4
gpt4 key购买 nike

所以我正在开发一款游戏,我需要有关保存文件的文件 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 PM jrpg.JRPG savesManagementMenu严重:空java.io.FileNotFoundException:文件:\C:\Users\Adam\Desktop\New%20folder\JRPG.jar!\jrpg\Saves\save1.txt(文件名、目录名或卷标语法为不正确)

游戏就卡住了。当我运行编译的代码时,我希望它查看的保存文件路径是:C:\Users\Adam\Desktop\Newfolder\Saves

哪个是相对文件路径?如何解决此问题,以便无论我从何处运行文件,编译后的代码都会位于正确的位置? (假设我的 friend 想从他的计算机上运行游戏,除非他将“新文件夹”文件夹放在桌面以外的其他地方)

最佳答案

嵌入式资源不是文件,不能被视为文件。另外,就输出文件而言,您不应该尝试将其保存在应用程序中......

相反,可以将文件保存到应用程序的相对位置...

File saveMenuSaveFile = new File("./Saves/save" + i + ".txt");

或者到用户主目录...

String userHome = System.getProperty("user.home");
File saveMenuSaveFile = new File(userHome + "/.YouApplicationName/Saves/save" + i + ".txt");

关于java - 尝试让文件路径适用于 Java/Netbeans 中的所有版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18394531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com