Невозможно сделать это с Flow без преобразования его в Sink.
Если опция является раковиной, выполните следующие действия:
def tee = {
val writer: Writer = new StringWriter()
Sink
.foreach[String] { msg =>
writer.write(msg)
}
.mapMaterializedValue(_.map { done =>
writer.close()
done
})
}
Аналогичное действие можно выполнить с помощью akka.stream.scaladsl.StreamConverters
следующим образом
val sink: Sink[String, Future[IOResult]] = {
StreamConverters.fromOutputStream(() => new org.apache.commons.io.output.WriterOutputStream(writer)).contramap[String](ByteString.apply)
}