加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何在功能样式中创建和操作文件?

发布时间:2020-12-16 18:05:16 所属栏目:安全 来源:网络整理
导读:我需要编写一个程序,在其中运行一组指令并在目录中创建一个文件.创建文件后,当再次运行相同的代码块时,它不应运行相同的指令集,因为它之前已经执行过,此处文件用作保护程序. var Directory: String = "Dir1"var dir: File = new File("Directory");dir.mkdir
我需要编写一个程序,在其中运行一组指令并在目录中创建一个文件.创建文件后,当再次运行相同的代码块时,它不应运行相同的指令集,因为它之前已经执行过,此处文件用作保护程序.

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中运行指令集并且还创建文件,并且在第一次运行之后,第二次运行它应该退出,因为文件存在.

问题是我不了解新文件,以及何时创建文件?我应该使用file.CreateNewFile吗?另外,如何用功能样式写这个用例?

解决方法

重要的是要理解 java.io.File不是文件系统上的物理文件,而是路径名的表示 – 根据javadoc:“文件和目录路径名的抽象表示”.因此,新文件(…)与创建实际文件无关 – 您只需定义路径名,该路径名可能与现有文件对应,也可能不对应.

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

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

如果在JRE 7或更高版本上运行,您可以使用新的java.nio.file API:

val path = Paths.get("filepath/filename")
Files.createFile(path)

如果您对默认IO API不满意,可以考虑许多替代方案.我所知道的Scala特定的是:

> scala-io
> rapture.io

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

编辑:我最初没有考虑过的一件事:我理解“创建一个文件”为“创建一个空文件”;但如果您打算在文件中立即写入内容,则通常不需要先创建空文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读