2016-12-09 9 views
2

ファイルを読み取ろうとしています。このファイルを1行ずつリストに読み込む必要があります。ソース[ByteString、Future [IOResult]]をリスト[String]に変換してください

val res: stream.scaladsl.Source[ByteString, Future[IOResult]] = Ftp.fromPath(Paths.get(uri), ftpSettings) 

どのようにして、res値をList [String]に変換できますか?

+0

私はすでにこれらのフローを試しました。しかし、私は文字列を望んでいない、私はリスト[文字列] res.via(Framing.delimiter( 延ByteString( "\ n")を、 maximumFrameLength = 256、 allowTruncation =真)) を取得したいです。マップ(_。utf8String) – borney

答えて

5

コメントの流れは良い出発点のようです。 Sink.seqに対して試してみてください。

val f: Future[Seq[String]] = res 
    .via(Framing.delimiter(ByteString("\n"), maximumFrameLength = 256, allowTruncation = true)) 
    .map(_.utf8String) 
    .runWith(Sink.seq) 

    val list: Seq[String] = Await.result(f, 10.seconds) 
関連する問題