从Scala中的FileIO.fromPath获取akka Bytestring的惯用方法是什么?
答案 0 :(得分:3)
我认为最简单的方法是使用runFold
:
FileIO.fromPath(Paths.get("some file path"))
.runFold(ByteString.empty)(_ ++ _)
这会返回Future[ByteString]
。
也就是说,只使用Files.readAllBytes
加载整个文件,然后将生成的Array[Byte]
转换为ByteString
,效率会更高:
ByteString(Files.readAllBytes(Paths.get("some file path")))
答案 1 :(得分:0)
使用Source
map
转换字节串
FileIO.fromPath(Paths.get("some file path")).map { byteString =>
doSomething()
}