gpt4 book ai didi

scala - 如何以功能风格进行文件创建和操作?

转载 作者:行者123 更新时间:2023-12-04 23:21:13 26 4
gpt4 key购买 nike

我需要编写一个程序,在其中运行一组指令并在目录中创建一个文件。一旦文件被创建,当再次运行相同的代码块时,它不应该运行相同的指令集,因为它之前已经执行过,这里文件用作保护。

var Directory: String = "Dir1"
var dir: File = new File("Directory");
dir.mkdir();

var FileName: String = Directory + File.separator + "samplefile" + ".log"
val FileObj: File = new File(FileName)

if(!FileObj.exists())
// blahblah
else
{
// set of instructions to create the file
}

当程序最初运行时,该文件将不存在,因此它应该运行 else 中的指令集并创建文件,第一次运行后,第二次运行它应该退出,因为文件存在。

问题是我不懂 new File ,以及何时创建文件?我应该使用 file.CreateNewFile ?此外,如何使用 case 以函数式风格编写它?

最佳答案

重要的是要了解 java.io.File不是文件系统上的物理文件,而是路径名的表示——根据 javadoc:“文件和目录路径名的抽象表示”。所以new File(...)与创建实际文件无关 - 您只是定义一个路径名,它可能对应于现有文件,也可能不对应。

要创建一个空文件,您可以使用:

val file = new File("filepath/filename")
file.createNewFile();

如果在 JRE 7 或更高版本上运行,您可以使用新的 java.nio.file接口(interface):
val path = Paths.get("filepath/filename")
Files.createFile(path)

如果您对默认的 IO API 不满意,您可以考虑一些替代方案。我知道的特定于 Scala 的有:
  • scala-io
  • rapture.io

  • 或者您可以使用 Java 世界中的库,例如 Google GuavaApache Commons IO .

    编辑:我最初没有考虑的一件事:我将“创建文件”理解为“创建一个空文件”;但是如果你打算立即在文件中写入一些东西,你通常不需要先创建一个空文件。

    关于scala - 如何以功能风格进行文件创建和操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206903/

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