Scala 文件 I/O

在 Scala 中,文件 I/O 操作可以通过多种方式实现。以下是几种常见的方法:

1. 使用 scala.io.Source 读取文件

scala.io.Source 提供了一种简单的方式来读取文件内容。以下是一个示例,展示了如何读取文件并打印每一行:

import scala.io.Source

object FileReadExample extends App {
  val filename = "example.txt"

  try {
    val source = Source.fromFile(filename)
    for (line <- source.getLines()) {
      println(line)
    }
  } catch {
    case e: Exception => 
      println("读取文件时发生错误: " + e.getMessage)
  } finally {
    // 确保文件资源被关闭
    source.close()
  }
}

2. 使用 java.nio.file 进行更复杂的文件操作

java.nio.file 包提供了更强大的文件操作功能,包括读写文件、创建目录等。以下是一个示例,展示了如何使用 java.nio.file 读取和写入文件:

读取文件
import java.nio.file.{Files, Paths}

object FileReadExample extends App {
  val filename = "example.txt"

  try {
    val lines = Files.readAllLines(Paths.get(filename))
    lines.forEach(println)
  } catch {
    case e: Exception => 
      println("读取文件时发生错误: " + e.getMessage)
  }
}
写入文件
import java.nio.file.{Files, Paths, StandardOpenOption}

object FileWriteExample extends App {
  val filename = "output.txt"
  val content = "Hello, Scala!"

  try {
    Files.write(Paths.get(filename), content.getBytes(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING)
    println("文件写入成功")
  } catch {
    case e: Exception => 
      println("写入文件时发生错误: " + e.getMessage)
  }
}

3. 使用 scala.util.Try 处理文件 I/O

scala.util.Try 可以用来简化异常处理,使代码更加简洁。以下是一个示例,展示了如何使用 Try 读取文件:

import scala.io.Source
import scala.util.{Try, Success, Failure}

object FileReadExample extends App {
  val filename = "example.txt"

  Try {
    val source = Source.fromFile(filename)
    val lines = source.getLines().toList
    source.close()
    lines
  } match {
    case Success(lines) => 
      lines.foreach(println)
    case Failure(e) => 
      println("读取文件时发生错误: " + e.getMessage)
  }
}

总结

  • scala.io.Source:适用于简单的文件读取操作。
  • java.nio.file:提供更强大的文件操作功能,适用于复杂的需求。
  • scala.util.Try:简化异常处理,使代码更加简洁。

你可能感兴趣的:(scala,大数据,开发语言)