scala文件操作
Scala 文件操作:读写与系统命令交互
Scala 提供了简洁的 API 用于文件读写和系统命令执行,既可以利用 Java 的 IO 类库,也可以使用 Scala 标准库中的工具(如 scala.io.Source)。此外,Scala 对系统命令的支持尤为便捷,能轻松实现命令执行、管道和重定向。本文将详细介绍 Scala 的文件操作和系统命令交互方式。
文件读取:scala.io.Source
Scala 标准库的 scala.io.Source 是读取文本文件的首选工具,支持从文件、URL、输入流等多种来源读取数据。
读取文件的所有行
使用 Source.fromFile 打开文件,getLines 方法获取所有行(返回 Iterator[String]):
import scala.io.Source
import java.io.File
object FileReader {
def main(args: Array[String]): Unit = {
// 打开文件(指定路径和编码)
val source: Source = Source.fromFile(new File("data.txt"), "UTF-8")
try {
// 读取所有行(返回迭代器)
val lines: Iterator[String] = source.getLines()
// 遍历行并打印
println("文件内容:")
lines.foreach(println)
} finally {
// 关闭资源(避免内存泄漏)
source.close()
}
}
}
关键说明:
Source.fromFile的第一个参数可以是文件路径字符串("data.txt")或java.io.File对象。- 第二个参数指定编码(如
"UTF-8"),默认使用系统编码。 - 必须在
finally块中调用source.close(),确保资源释放。
读取整个文件为字符串
使用 mkString 方法直接将文件内容转换为单个字符串:
