使用当前日期和时间创建一个文本文件作为Java中的文件名

时间:2016-12-17 14:10:01

标签: java file-writing

我正在尝试创建一个文本文件,并在我的GUI应用程序中单击按钮时使用Java向其中添加一些详细信息,文本文件的名称必须是当前日期和时间以及文本文件的位置必须是相对的。以下是我用来执行此操作的代码段。

        public void actionPerformed(ActionEvent e){
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss");
            Date date = new Date();
            String fileName = dateFormat.format(date) + ".txt";
            File file = new File(fileName);
            PrintWriter pw;
            try{
                if(file.createNewFile()){
                    pw = new PrintWriter(file);

                    //Write Details To Created Text File Here

                    JOptionPane.showMessageDialog(null, "The Statistics have successfully been saved to the file: "
                            + fileName);
                }else{
                    JOptionPane.showMessageDialog(null, "The save file " + fileName
                            + " already exists, please try again in a while.");
                }
            }catch(IOException exception){
                JOptionPane.showMessageDialog(null, exception + ", file name:- " + fileName);
            }catch(Exception exception){
                JOptionPane.showMessageDialog(null, exception);
            }
       }

不幸的是,当我运行上面的代码时,我收到以下错误:

enter image description here

我找不到问题,请告诉我我做错了什么。

2 个答案:

答案 0 :(得分:1)

猜猜

  1. 您的操作系统不允许在文件名中使用/字符
  2. 或者认为/分隔目录;换句话说:您正试图在子目录中创建一个文件......可能不存在
  3. 无关,但也很重要:你不应该混合这样的事情。您应该将创建并将该文件写入的代码放入其自己的实用程序类中;而不是将其推入与UI相关的代码中。

    你知道,如果你在这里创建了一个助手类;对那个单元进行单元测试也会更容易 ;确保它做你期望它做的事。

答案 1 :(得分:0)

文件系统对字符可以放入文件名的限制。例如,正如@lordvlad所说,斜杠用于在成功目录之间进行划分。此外,在Windows中,:用于分隔驱动器名称(即C:\ ...)。