当前位置: 首页 > 知识库问答 >
问题:

Scala/Java-未在指定目录中创建文件

阎志义
2023-03-14

这可能是一个非常基本的问题,但我尝试了各种选择,但都没有成功,因此请求帮助。我想在指定目录中创建一个文件。如果文件已经存在,我想向其添加数据。以下是我尝试的内容:

    var DirectoryName: String = "LogFiles"
    var dir: File = new File(DirectoryName);  
    dir.mkdir();

    var ActorID: String = "1"  
    var FileName: String = DirectoryName + File.separator + "Actor_" + ActorID + ".log"
    val FileObj: File = new File(FileName)

//   FileObj.getParentFile().mkdirs();
//   FileObj.createNewFile();

    var FileWriterObj: FileWriter = null
    var FileExistsFlag = 0

    if (!FileObj.exists())
    {    
     FileWriterObj = new FileWriter(FileObj.getName())
    }
    else
    {
      FileWriterObj = new FileWriter(FileObj.getName(), true)
      FileExistsFlag = 1
    }

    var writer = new PrintWriter(FileWriterObj)

    if(FileExistsFlag == 0)
        writer.write("new file")
    else
    writer.append("appending to old file")

Internet搜索要求使用以下内容:

FileObj.getParentFile().mkdirs();
FileObj.createNewFile();

但是它会在目录内创建空文件,并在目录外创建新文件并附加到它。而且很少有帖子建议不需要使用createNewFile()来创建文件。

我尝试了如下各种路径格式:

var DirectoryName: String = "../LogFiles"
var DirectoryName: String = "/home/ms/Desktop/Project/LogFiles"

但它仍然不会在目录中创建文件。你能告诉我我错过了什么吗?

操作系统:Ubuntu 12.04

共有1个答案

蒯翰墨
2023-03-14

您应该使用FileObj.getAbsoltePath,而不是FileObj.getName。getName只返回文件的名称,这解释了为什么它总是放在当前目录中。

空文件问题可以通过在函数末尾调用writer.close()来解决。我认为没有必要使用createNewFile

 类似资料:
  • 问题内容: 如果要在中创建文件,可以执行以下操作: 另外,我想用于创建文件。那我该怎么办呢?由于某种原因,该文件未在正确的目录中创建。 问题答案: 最好的方法是:

  • 我创建了一个简单的maven项目来创建着色jar。我使用mvn clean compile构建了它。它创建了jar文件,但在提取它之后,我看不到与我的项目java源文件对应的.class文件。我在构建时可以清楚地看到下面的消息,但在目标目录下看不到任何.class文件。 [信息]-maven-compiler-plugin:3.1:compile(默认-编译)@ PersonalizationFe

  • 问题内容: 使用向导从Android Studio创建了一个新的flutter项目。 新创建的项目文件夹在ios目录中没有任何Pods文件夹或podfile。 此Flutter.io页面状态(强调我的): 尽管Flutter项目的iOS文件夹中有一个Podfile,但只有在添加逐平台集成所需的本机依赖项时,才使用此文件。 我的ios目录中根本没有Podfile。 我在另一个问题中发现了此评论,这表

  • 使用向导从Android Studio创建了一个新的flutter项目。 新创建的项目文件夹在ios目录中没有任何Pods文件夹或podfile。 的输出:

  • 条件是,如果目录存在,则必须在该特定目录中创建文件,而不创建新目录。 下面的代码仅使用新目录创建一个文件,而不针对现有目录。例如,目录名类似于“GETDIRECTION”:

  • 我试图在springboot中配置log4j2。我已经从pom.xml.中删除(排除)了登录依赖项,我正在名为log4j2.xml的资源文件夹下使用此xml 这是我的控制器类。 我在这里错过了什么吗?我尝试使用application.properties也使用最新版本的Log4j2.But仍然没有created.When我运行应用程序,我看不到任何日志文件在xml中指定的路径上动态创建。