当前位置: 首页 > 面试题库 >

使用Java Nio创建子目录和文件

经慈
2023-03-14
问题内容

我正在创建一个简单的程序,尝试从磁盘中读取“ conf / conf.xml”,但是如果此文件或目录不存在,则会创建它们。

我可以使用以下代码执行此操作:

    // create subdirectory path
    Path confDir = Paths.get("./conf");

    // create file-in-subdirectory path
    Path confFile = Paths.get("./conf/conf.xml");

    // if the sub-directory doesn't exist then create it
    if (Files.notExists(confDir)) { 
        try { Files.createDirectory(confDir); }
        catch (Exception e ) { e.printStackTrace(); }
    }

    // if the file doesn't exist then create it
    if (Files.notExists(confFile)) {
        try { Files.createFile(confFile); }
        catch (Exception e ) { e.printStackTrace(); }
    }

我的问题是,这是否真的是最优雅的方式?需要创建两个简单的路径以在新的子目录中创建新文件似乎多余。


问题答案:

您可以将声明confFile为,File而不是Path。然后,您可以使用confFile.getParentFile().mkdirs();,请参见下面的示例:

// ...

File confFile = new File("./conf/conf.xml"); 
confFile.getParentFile().mkdirs();

// ...

或者,按原样使用代码,您可以使用:

Files.createDirectories(confFile.getParent());


 类似资料:
  • 前面小节介绍了如何展示目录和文件列表相关信息,本小节介绍如何创建文件和目录,使用 touch 命令可以创建文件,使用 mkdir 命令可以创建目录。 1. touch 创建文件 实际业务中,有些应用程序写入日志时要求需要先存在指定的日志文件,创建文件命令如下: touch error.log 执行结果如下图: Tips:如图所示,可以看到新建的 error.log 文件大小为 0 (空文件),文

  • 您好,我想用java创建目录和子目录。我的目录结构是从当前应用程序目录开始的,意思是在当前项目目录中,如下所示。。。 我知道如何创建目录,但我需要创建子目录,我用下面的代码尝试了,下一步应该做什么?

  • 问题内容: 我试图在该目录中创建一个新目录和一个文件。谁能告诉我我要去哪里错了? 我正在使用Windows系统,并且我希望该目录存在于我的文件所在的文件夹中。 问题答案: 基本上,正在发生的事情是,您正在创建一个名为的目录,然后尝试创建一个名为同一个东西的新文件,这显然行不通。 所以,而不是… 尝试… 额外 如果失败,实际上不会抛出任何异常,这很烦人,所以我会做更多类似的事情… 就这样我知道实际的

  • 本文向大家介绍浅析java创建文件和目录,包括了浅析java创建文件和目录的使用技巧和注意事项,需要的朋友参考一下 一,创建文件和目录的关键技术点如下:    1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败       2、File类的mkdir方法根据抽象路径创建目录       3、File类的mkdirs方法根据抽象路径创建目录

  • 问题内容: 以前,我要求如何在FileTable不使用File I / OAPI的情况下在其中创建目录。现在,我想为我刚刚创建的父目录创建一个子目录。在插入期间如何分配我的父母?似乎是一个计算列。 这创建了我的父母… 如何在FileTable中为此父级创建子目录? 问题答案: 这是我最终用来创建子目录的原因,因为它不会为我生成新值-它只会解释现有值。 上面的代码块利用了在此发现的默认path_lo

  • 在7.1节中介绍过,Entry的getDirectory和getFile方法可以获取和创建子目录和文件,在本节将主要讲解创建目录和文件。同时也会介绍删除目录和文件的方法。 在调用getDirectory方法时,如果在参数对象中指定create属性为true,则会创建相应的子目录,如: chrome.fileSystem.chooseEntry({type: 'openDirectory'}, fu