所以這裏是我的問題(我讀了其他答案,但沒有完全得到它)。數據在jar中讀取文件(在Java中)和計數文件
在一組4人中,我們創建了一個Java遊戲作爲大學項目。其中的一部分是通過Ant創建* .jar文件。 GameBoardx.txt數據中保存了幾個GameBoard,其中x是數字。我們想隨機選擇其中之一。因此,每次加載GameBoard時,GameBoard目錄中的文件都會被計數,以便生成正確範圍內的隨機數。從Eclipse運行它時,我們的代碼工作得很好。它無法從* .jar文件運行,並以NullPointerException退出。
int number = 0;
int fileCount = new File(new File("").getAbsolutePath()+"/GameBoards/").listFiles().length;
Random rand = new Random();
number = rand.nextInt(fileCount);
這些文件讀取以後使用此:
static String fileName = new File("").getAbsolutePath();
static String line = null;
boolean verticalObstacles[][] = new boolean[16][17];
int currentLine = 1;
try {
FileReader fileReader = new FileReader(fileName+"/GameBoards/Board"+boardNumber+".txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((line = bufferedReader.readLine()) != null){
if (currentLine <17){
for (int i=0; i<17; i++){
if (line.charAt(i) == '1'){
verticalObstacles[currentLine-1][i] = true;
} else {
verticalObstacles[currentLine-1][i] = false;
}
}
}
currentLine ++;
}
bufferedReader.close();
的代碼的其餘部分的工作原理與* .jar文件和* .txt文件都包含在裏面。
我找到的解決方案對我們來說並不好,因爲代碼必須與* .jar文件一起工作,並且只需從Eclipse啓動它即可通過測試。
這兩種工作都有什麼解決方法?
你應該保留你的GameBoards目錄以外的jar文件 – Sanjeev
這是不適用的。我們被要求創建jar文件的原因是,我們有一個單獨的文件,可以被髮送並被人們使用,而無需額外的工作。 – Shadol