我正在尝试使用cat-effect以纯功能方式获取一些基本文件 IO(写入/读取) 。在遵循本教程之后,这是我最终读取文件的结果:
private def readFile(): IO[String] = for {
lines <- bufferedReader(new File(filePath)).use(readAllLines)
} yield lines.mkString
def bufferedReader(f: File): Resource[IO, BufferedReader] =
Resource.make {
IO(new BufferedReader(new FileReader(f)))
} { fileReader =>
IO(fileReader.close()).handleErrorWith(_ => IO.unit)
}
现在在handleErrorWith
函数中我可以记录任何发生的错误,但是我怎样才能为此添加正确的错误处理(例如 return a Resource[IO, Either[CouldNotReadFileError, BufferedReader]]
)?