Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala/Java-未在指定目录中创建文件_Java_File_Scala_Io_Directory - Fatal编程技术网

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

Scala/Java-未在指定目录中创建文件,java,file,scala,io,directory,Java,File,Scala,Io,Directory,这可能是一个非常基本的问题,但我尝试了各种选择,但没有成功,因此请求帮助。我想在指定目录中创建一个文件。如果文件已经存在,我想向其追加数据。以下是我尝试过的: var DirectoryName: String = "LogFiles" var dir: File = new File(DirectoryName); dir.mkdir(); var ActorID: String = "1" var FileName: String = Dir

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

    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