如何在scala中将文件作为ByTestString读取?
我想在scala中制作TCP-IO。并且数据类型将是bytestring。如何在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、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
。谢谢大家!\