使用 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)
{
稍后在缓冲的程序中 reader/writer 对文件进行编辑,然后使用以下代码将其保存到新位置:
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://用户或影响的东西。)
有没有一种基本的方法可以让用户简单地输入 select 一个目录,然后在上面显示的行中使用 bw 来使用它?
提前致谢。
Is there a basic way that I can give the user a simple input to
select a directory
基本的方法是:
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());
}
对于我正在进行的工作项目,我被要求向我的程序添加一个功能。目前,该程序允许用户上传文件,然后对其进行操作。重新格式化后,文件将保存到一个新的 .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)
{
稍后在缓冲的程序中 reader/writer 对文件进行编辑,然后使用以下代码将其保存到新位置:
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://用户或影响的东西。)
有没有一种基本的方法可以让用户简单地输入 select 一个目录,然后在上面显示的行中使用 bw 来使用它?
提前致谢。
Is there a basic way that I can give the user a simple input to select a directory
基本的方法是:
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());
}