Scala - 检查文件或路径是否存在
Scala 可以使用任何 Java 对象,java.io.File 就是其中之一,可用于 Scala 编程中的读写文件和目录、删除等操作。
检查指定文件是否存在
您可以使用 Java File 类的 exists 方法来检查指定文件是否存在。该方法如果抽象路径名表示的文件(或目录)存在则返回 true ,否则返回 false 。
示例
以下示例展示了如何检查名为 test.txt 的文件是否存在 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val file = new File("test.txt")
if (file.exists()) {
println("File exists")
} else {
println("File does not exist")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译并执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查文件 test.txt 是否存在。如果文件存在,将打印 "File exists"。如果文件不存在,将打印 "File does not exist"。
将产生以下结果 -
File exists
检查指定目录是否存在
检查指定目录是否存在的方法与检查文件是否存在类似。
示例
以下示例展示了如何检查名为 testDir 的目录是否存在 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val directory = new File("testDir")
if (directory.exists()) {
println("Directory exists")
} else {
println("Directory does not exist")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译并执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查目录 testDir 是否存在。如果目录存在,将打印 "Directory exists"。如果目录不存在,将打印 "Directory does not exist"。
将产生以下结果 -
Directory exists
检查指定路径是否为文件
您可以使用 File 类的 isFile 方法来检查指定路径是否为文件。该方法如果抽象路径名表示的是普通文件则返回 true ,否则返回 false 。
示例
以下示例展示了如何检查名为 test.txt 的路径是否为文件 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val file = new File("test.txt")
if (file.isFile) {
println("Path is a file")
} else {
println("Path is not a file")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译并执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查路径 test.txt 是否为文件。如果路径是文件,将打印 "Path is a file"。如果路径不是文件,将打印 "Path is not a file"。
将产生以下结果 -
Path is a file
检查给定路径是否为目录
您可以使用 File 类的 isDirectory 方法检查给定路径是否为目录。如果抽象路径名表示的文件是一个目录,该方法返回 true,否则返回 false。
示例
以下示例展示了如何检查名为 testDir 的路径是否为目录 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val directory = new File("testDir")
if (directory.isDirectory) {
println("Path is a directory")
} else {
println("Path is not a directory")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译和执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查路径 testDir 是否为目录。如果该路径是目录,将打印 "Path is a directory"。如果该路径不是目录,将打印 "Path is not a directory"。
这将产生以下结果 -
Path is a directory
检查给定文件是否可读
您可以使用 File 类的 canRead 方法检查给定文件是否可读。如果抽象路径名表示的文件可以读取,该方法返回 true,否则返回 false。
示例
以下示例展示了如何检查名为 test.txt 的文件是否可读 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val file = new File("test.txt")
if (file.canRead) {
println("File is readable")
} else {
println("File is not readable")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译和执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查文件 test.txt 是否可读。如果文件可读,将打印 "File is readable"。如果文件不可读,将打印 "File is not readable"。
这将产生以下结果 -
File is readable
检查给定文件是否可写
您可以使用 File 类的 canWrite 方法检查给定文件是否可写。如果抽象路径名表示的文件可以写入,该方法返回 true,否则返回 false。
示例
以下示例展示了如何检查名为 test.txt 的文件是否可写 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val file = new File("test.txt")
if (file.canWrite) {
println("File is writable")
} else {
println("File is not writable")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译和执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查文件 test.txt 是否可写。如果文件可写,将打印 "File is writable"。如果文件不可写,将打印 "File is not writable"。
这将产生以下结果 -
File is writable
检查给定文件是否可执行
你可以使用 File 类的 canExecute 方法来检查给定文件是否可执行。如果由抽象路径名表示的文件可以执行,该方法返回 true,否则返回 false。
示例
以下示例展示了如何检查名为 test.txt 的文件是否可执行 −
import java.io._
object Demo {
def main(args: Array[String]) = {
val file = new File("test.txt")
if (file.canExecute) {
println("File is executable")
} else {
println("File is not executable")
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译并执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
上述代码将检查文件 test.txt 是否可执行。如果文件可执行,它将打印 "File is executable"。如果文件不可执行,它将打印 "File is not executable"。
这将产生以下结果 -
File is executable
检查文件属性时处理异常
在处理文件操作时,处理 SecurityException 和 IOException 等异常非常重要,以使你的代码更加健壮。
示例
以下示例展示了如何在检查文件属性时处理异常 −
import java.io._
object Demo {
def main(args: Array[String]) = {
try {
val file = new File("test.txt")
if (file.exists()) {
println("File exists")
} else {
println("File does not exist")
}
} catch {
case ex: SecurityException => println("Permission denied: " + ex.getMessage)
case ex: IOException => println("An IO error occurred: " + ex.getMessage)
}
}
}
将上述程序保存为 Demo.scala。使用以下命令编译并执行该程序。
命令
> scalac Demo.scala > scala Demo
输出
如果发生错误,程序将打印相应的错误消息。
这将产生以下结果 -
Permission denied: [error message]