繁体   English   中英

使用BufferedWriter和JFileChooser设置保存目录

[英]Using BufferedWriter with JFileChooser to set save directory

在我正在进行的项目中,我被要求为程序添加功能。 当前,该程序允许用户上传文件,然后对其进行操作。 重新格式化后,文件将保存到新的.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一起使用它?

提前致谢。

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

做到这一点的基本方法是:

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

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

int returnVal = chooser.showDialog(chooser, "Directory to save");
if (returnVal == JFileChooser.APPROVE_OPTION) {
    System.out.println(chooser.getSelectedFile());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM