使用BufferedWriter和JFileChooser设置保存目录

时间:2015-09-22 15:28:36

标签: java jfilechooser bufferedwriter

对于我正在进行的项目,我被要求为我的程序添加一项功能。目前,该程序允许用户上传然后被操纵的文件。重新格式化后,文件将保存到新的.ACH文件中(这只是一个具有严格格式标准的文本文件)。

目前,用户可以使用以下代码从计算机上的任何位置上传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一起使用?

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

是否有一种基本方法可以为用户提供简单的输入   选择一个目录

执行此操作的基本方法是:

)

其余的可能不那么明显(你必须要求选择的文件才能获得目录):

JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);