對於我正在進行的項目,我被要求在我的程序中添加一個功能。目前該程序允許用戶上傳文件,然後操作。重新格式化後,文件被保存到一個新的.ACH文件中(這只是一個具有嚴格格式標準的文本文件)。使用BufferedWriter和JFileChooser來設置保存目錄
目前,用戶可以從他們的計算機上的任何地方使用該代碼上傳的ACH文件:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("ACH Files", "ach");
chooser.setFileFilter(filter);
chooser.setDialogTitle("Please choose ACH file to upload");
int returnVal = chooser.showOpenDialog(chooser);
chooser.setCurrentDirectory(null);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
在程序緩存的讀/寫器之後進行編輯的文件,然後將其保存到新使用此代碼的位置:
br = new BufferedReader(new FileReader(chooser.getSelectedFile()));
bw = new BufferedWriter(new FileWriter(chooser.getCurrentDirectory()+"//NachaOutput.ACH"));
最後,用戶被告知文件名,並使用此代碼保存位置:
JOptionPane.showMessageDialog(null, "Output file saved as NachaOutput.ach to " + chooser.getCurrentDirectory());
如您所見,新文件被保存到文件從其上傳的同一目錄中。我的經理要求我允許用戶選擇一個目錄來保存新文件。 (文件名不重要,也不需要由用戶設置,僅限於目錄)。
我試過並試圖研究如何做到這一點,無濟於事。我發現的唯一指南非常冗長,我承認對我來說太複雜了。我試圖創建一個新的JFileChooser並允許用戶只設置目錄,並使用代碼:
int saveVal = chooser2.showSaveDialog(chooser2);
不過,我發現,當我嘗試後拉保存的目錄是這樣的:
bw = new BufferedWriter(new FileWriter(chooser2.getCurrentDirectory()+"//NachaOutput.ACH"
該文件保存到我的電腦標準目錄。 (C://用戶或其他影響的東西)。
有沒有一種基本的方法,我可以給用戶一個簡單的輸入來選擇一個目錄,然後在上面顯示的行上使用它與bw?
在此先感謝。
謝謝如此非常!今天早上我花了不少時間,至少兩個小時。 你是100%正確的,爲什麼它不適合我。問題是我使用.getSelectedDirectory而不是.getSelectedFile。它現在完美。 再次感謝! – jesric1029