如何在scala中读取文件作为字节串?

Ji *_*hoi 0 scala

我想在scala中创建TCP-IO.数据类型将是bytestring.然后,我想在scala,intellij,akka 2.3.14中读取一个文件作为字节串类型.

Ram*_*gil 5

假设你在谈论akka.util.ByteString你可以为整个文件制作1个ByteString:

import akka.util.ByteString
import scala.io.Source

def fileToByteStr(filename : String) : ByteString = 
  ByteString(Source.fromFile(filename).mkString)
Run Code Online (Sandbox Code Playgroud)

或者,如果你想要文件中的每一行都有1个ByteString,它会懒散地保留在"板上",直到Iterator耗尽:

def fileToMultipleByteStr(filename : String) : Iterator[ByteString] = 
  Source.fromFile(filename)
        .getLines()
        .map(ByteString.apply)
Run Code Online (Sandbox Code Playgroud)

如果你想要内存中的数据,你可以将Iterator排到Seq:

val memoryHog = fileToMultipleByteStr("foo.txt").toSeq
Run Code Online (Sandbox Code Playgroud)