2013-08-23 52 views
1

因此,我正在開發一款遊戲,並且需要有關我的文件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

這將是相對文件路徑的權利?我怎樣才能解決這個問題,使我的編譯代碼看起來在正確的位置,無論我從哪裏運行文件? (可以說我的朋友想從他的電腦上運行遊戲,除了他把「新建文件夾」文件夾放在桌面以外的其他地方)

回答

0

嵌入式資源不是File,不能被視爲一個。此外,至於輸出文件,你不應該試圖挽救你的應用程序裏面反正...

相反,無論是將文件保存到您的應用程序的相對位置......

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

或者到用戶主目錄...

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