gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:51:06 25 4
gpt4 key购买 nike

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

    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

最佳答案

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

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

关于java - Scala/Java - 未在指定目录内创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com