2015-07-01 67 views
1

我的程序有一個名爲data的文件夾 - 用於存儲文本文件 - 當我單擊保存在我的JAR應用程序中時,雖然沒有任何反應。我怎樣才能讓它可以訪問和保存新文件?下面是一些代碼如何訪問JAR文件中的文件夾

public void saveAs() { 
    FileChooser fileChooser = new FileChooser(); 
    fileChooser.setTitle("Save Routine"); fileChooser.setInitialDirectory(new File("data/routines")); 
    fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("txt", "*.txt")); 
    if (fileName != null) { 
     fileChooser.setInitialFileName(fileName); 
    } 
    save(fileChooser.showSaveDialog(stage)); 
} 

我也有絕對路徑做到了,沒有工作,要麼

+1

如果這是你的意思,你不能將文件保存在jar中。那麼,一切皆有可能,但是jar中的資源文件基本上是爲了閱讀,而不是爲了寫作。 – RealSkeptic

+0

是否有替代罐子?或者有另一種方法可以將它保存在罐子外面嗎? – Bruce

+0

它也不會讓我讀取文件 – Bruce

回答

0

的沒有看到您保存(java.io.File的)方法,我不能說。 FileChooser.showSaveDialog只是顯示對話框,並告訴你他們選擇了什麼文件(如果有的話)。然後你必須寫它,不管它是JAR還是TXT。

試試這個:

private void save(File where){ 
    if(where==null){ //they canceled. 
    return; 
    } 
    try(OutputStream out = Files.newOutputStream(where.toPath())){ 
    //Write to out. 
    } 
} 

你可以寫的東西成JAR文件,全部用純JarFile constructor,但它看起來像你想的純文本文件。雖然您可能能夠在運行時更新應用程序的JAR文件,但大多數程序不會這樣做,因爲它很奇怪。

相關問題