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 或者您可以使用Java世界中的库,例如Google Guava或Apache Commons IO. 编辑:我最初没有考虑过的一件事:我理解“创建一个文件”为“创建一个空文件”;但如果您打算在文件中立即写入内容,则通常不需要先创建空文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |