2014-01-15 90 views
1

我想寫入包中的.txt文件。我可以從.txt文件存儲的確切位置讀取它,但不能從包中讀取。我假設它正在使用類加載器,但我似乎無法得到它的工作。 這是我到目前爲止。寫入包中的.txt文件

public void writeFile(String fileLocation) { 
    Writer output = null; 
    File file = new File(fileLocation); 
    try { 
     output = new BufferedWriter(new FileWriter(file)); 
     output.append("WRITING TEST"); 

    output.close(); 
    } catch (IOException ex) { 
    System.out.println("Couldn't write to file."); 

    } 
} 

然後我用這個在另一個類中寫。

WriteFile writeFile = new WriteFile(); 
writeFile.writeFile("src/com/game/scores.txt"); 

我明白,如果使用的類加載器刪除「的src /」,因爲當程序在一個.jar編譯,將不復存在。

+1

我不確定你在問什麼。你正在嘗試寫入資源嗎? – mikea

+0

我不確定是否有通用的方式來爲Java包層次結構中的文件執行此操作。如果該文件位於JAR文件中,該怎麼辦? – thkala

+0

該文件將位於.jar文件中。我想寫信給它,以便在用戶通過關卡時更新我的​​遊戲中的分數。 – user3080274

回答

1

您可以使用該包中的類來爲您提供該文件夾的位置。 試着這麼做

public URL getPackageLocation() { 
    return getClass().getResource("."); 
} 

這應該給你從這種方法被稱爲從文件夾的位置。

+0

你有沒有試過這個罐子? – ashokramcse

+0

您可以通過這種方式獲取.jar文件中的文件位置(我已經多次使用它來調用圖像,而不是使用它)。但是,我不認爲你可以在jar中編輯一個.txt文件。 –

0

從你已經知道你水溼寫入一個文件,它駐留在一個JAR文件中的註釋。在最好的情況,你可以做什麼,是創建文件,相對於在JAR位於像波紋管的路徑:

mylocation 
      |-- my-jar.jar 
      |-- com 
       |--game 
         |--myfile.txt 
0

我想寫信給它來更新我的遊戲分數作爲 用戶通過關卡。

雖然可能對write to the JAR file,我不推薦它在這個用例。只需將它寫在:

Path userdir = Paths.get(System.getProperty("user.home"), ".myApp", "<my app version>"); 
0

您無法寫入Jar文件。寫入Jar文件是不可取的。你可以在jar文件外寫入。

有關更多詳細信息,請參閱thisthis堆棧溢出問題。