2016-01-09 52 views
0

我在JavaFX中開發了一個應用程序。 Alreadey我從TableView中選擇文件,並希望使用FileChooser將其保存在另一個目錄中,我該怎麼做?如何使用FileChooser保存現有文件

public static void clickDownloadButton(String filename,Stage window){ 
    File file = new File(filename); 
    FileChooser fileChooser = new FileChooser(); 
    fileChooser.setTitle("Save file"); 
    fileChooser.showSaveDialog(window); 
} 
+0

的[?標準簡潔的方式來複制Java中的文件(可能的複製http://stackoverflow.com/questions/106770/standard-concise-way- BTW:sillyfly的回答已經提到了IMHO的最佳方法 – fabian

+0

與鏈接問題的問題是,恕我直言,答案過於複雜(因爲它們已經過時/在NIO被廣泛使用之前?我不知道)。使用'Files.copy'非常簡單,並且我沒有看到有理由混淆流或在存在時使用外部依賴關係。 – Itai

回答

2

使用java.nio.file.Files -

File dest = fileChooser.showSaveDialog(window); 
if (dest != null) { 
    try { 
     Files.copy(file.toPath(), dest.toPath()); 
    } catch (IOException ex) { 
     // handle exception... 
    } 
} 
+0

你會解釋你的代碼嗎?我不明白這條線是做什麼的。 'Files.copy(file.toPath(),dest.toPath());'in [docs.oracle](http://docs.oracle.com/javafx/2/ui_controls/file-chooser.htm)以不同的方式完成。 – alhelal

+0

請參閱[文檔](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.nio.file.Path-java.nio.file .Path-java.nio.file.CopyOption ...-)。它將第一個參數給出的文件複製到第二個參數給出的路徑中。 – Itai

+0

from documentation「默認情況下,如果目標文件已經存在或者是符號鏈接,則複製失敗,除非源文件和目標文件是相同的文件,在這種情況下方法完成而不復制文件」我希望在文件存在,那麼我應該使用哪個函數? – alhelal

相關問題