如何使用jFilechooser保存文件夹而不是文件?

时间:2015-06-02 08:54:40

标签: java swing jfilechooser

所以基本上我坚持的是我有这个jFrame,我有两个TextAreas,我希望保存按钮的行为方式,当我进入保存并浏览目录并输入一些名称,然后按保存我想保存一个由这两个文件组成的文件夹。这是我用来保存其中一个textAreas的代码,因此我有两个保存按钮来保存两者,有人可以提出建议,这样当我输入save时,我将这两个文件放在该文件夹中。

以下是我使用的代码:

String content = Area.getText();

 JFileChooser chooser = new JFileChooser();

 chooser.setCurrentDirectory(new File("/home"));

 int retrieval = chooser.showSaveDialog(null);

 if (retrieval == JFileChooser.APPROVE_OPTION) {

    try(FileWriter fw = new FileWriter(chooser.getSelectedFile()+".txt")) {
                fw.write(content.toString());
    }
    catch (Exception ex) {
        ex.printStackTrace();
    }
 }

1 个答案:

答案 0 :(得分:1)

之前我遇到过这个问题,我想出了这个解决方案:

String content = Area.getText();

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("/home"));

int retrieval = chooser.showSaveDialog(null);
if (retrieval == JFileChooser.APPROVE_OPTION) {
    try {
       File dir = new File(chooser.getSelectedFile().toString());
       dir.mkdir();
       System.out.println(chooser.getSelectedFile().toString());
       File file = new File(chooser.getSelectedFile().toString()+ "/temp.txt");

       if (!file.exists()) {
            file.createNewFile();
       }

       FileWriter fw = new FileWriter(file.getAbsoluteFile());
       BufferedWriter bw = new BufferedWriter(fw);
       bw.write(content);
       bw.close();
   }
   catch (Exception ex) {
       ex.printStackTrace();
   }
}

查看它的作用是它使用chooser.getSelectedFile()获取您创建文件夹的位置的确切位置,然后使用它可以在其中添加文件。