save
を取り、Iteratee
it
いくつかのデータを に保存するメソッドがありますit
。メソッド内では、データはバイト配列チャンクを生成する列挙子として使用できます。
def save[E](consumer: Iteratee[Array[Byte], E]): Future[E] = {
val producer: Enumerator[Array[Byte]] = // ...
Iteratee.flatten(producer(consumer)).run
}
募集:save
にデータを書き込むために呼び出しFileOutputStream
ます。
次のことを試しましたが、これが正しい方法かどうかわかりません。
def writeToStream(s: OutputStream) =
Iteratee.foreach((e: Array[Byte]) => s.write(e)).
mapDone(r => { s.close(); r })
save(writeToStream(new FileOutputStream(myFile)))
質問:これは本来行われるべき方法ですか? これが常にストリームを閉じるとは限らないのではないかと心配しています(例外の場合)。
Play Framework 2.1 (Scala フューチャーを使用)の Play Framework Iteratee ライブラリを使用しています。