因此,我正在開發一款遊戲,並且需要有關我的文件I/O的savefiles幫助。目前,我有這樣的事情設置從他們閱讀:試圖讓文件路徑在Java/Netbeans中的所有版本上工作
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編譯:\複製\ JRPG \建立\類\ JRPG \保存「。
當我清理並生成項目,並嘗試通過命令行我得到這樣的迴應來運行它:
jar:file:/C:/Users/Adam/Desktop/New%20folder/JRPG.jar!/jrpg/Saves/save1.txt
2013年8月22日下午11點54分18秒jrpg.JRPG savesManagementMenu SEVERE:null java.io.FileNotFoundException:file:\ C:\ Users \ Adam \ Desktop \ New%20folder \ JRPG.jar !\ jrpg \ Saves \ save1.txt(文件名,目錄名或卷標語法是 不正確)
而遊戲只是凍結起來。當我運行編譯後的代碼時,我希望它保存的文件路徑是:C:\ Users \ Adam \ Desktop \ New folder \ Saves
這將是相對文件路徑的權利?我怎樣才能解決這個問題,使我的編譯代碼看起來在正確的位置,無論我從哪裏運行文件? (可以說我的朋友想從他的電腦上運行遊戲,除了他把「新建文件夾」文件夾放在桌面以外的其他地方)