如何在scala中将文件作为ByTestString读取?

如何在scala中将文件作为ByTestString读取?,scala,Scala,我想在scala中制作TCP-IO。并且数据类型将是bytestring。 然后,我想在scala、intellij、akka 2.3.14中以bytestring类型读取一个文件。假设您谈论的是akka.util.bytestring您可以为整个文件创建一个bytestring: import akka.util.ByteString import scala.io.Source def fileToByteStr(filename : String) : ByteString = B

我想在scala中制作TCP-IO。并且数据类型将是bytestring。
然后,我想在scala、intellij、akka 2.3.14中以bytestring类型读取一个文件。

假设您谈论的是
akka.util.bytestring
您可以为整个文件创建一个bytestring:

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

def fileToByteStr(filename : String) : ByteString = 
  ByteString(Source.fromFile(filename).mkString)
或者,如果您希望文件中的每一行都有1个ByteString,而该行在迭代器耗尽之前一直“在板上”:

def fileToMultipleByteStr(filename : String) : Iterator[ByteString] = 
  Source.fromFile(filename)
        .getLines()
        .map(ByteString.apply)
如果要将数据存储在内存中,可以将迭代器消耗到Seq:

val memoryHog = fileToMultipleByteStr("foo.txt").toSeq

如果您想获得Akka Streams的
Source[ByteString,quot;
,我建议您:

val source = FileIO.fromPath(filename)

什么是字节字符串?你是指字符串还是字节数组?当我使用akka http发布文件时,@Daenyth OP的可能副本指的是
HttpEntity
。谢谢大家!\