2015-07-01 2 views
1

У моей программы есть папка с именем data - которая хранит текстовые файлы - когда я нажимаю save в моем приложении 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

Вы не можете сохранять файлы в банке, если это то, что вы имеете в виду. Ну, все возможно, но файлы ресурсов в банке в основном предназначены для чтения, а не для записи. – 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-файлы вашего приложения во время его работы, большинство программ этого не делают, потому что это странно.

Смежные вопросы