fs2filtered
を使用して現在のストリーミング ファイルから行を削除し、フィルター処理された行の数を戻り値の型として取得する方法は?
例:old.txt
に改行 (\n) で区切られた文字列が含まれている場合:
john
sam
chen
yval
....
とval myList = List("chen","yval")
。
def converter[F[_]](implicit F: Sync[F]): F[Unit] =
io.file.readAll[F](Paths.get("testdata/old.txt"), 4096)
.through(text.utf8Decode)
.through(text.lines)
.filter(s => myList.contains(s))//remove this from the old file and write to new file
.intersperse("\n")
.through(text.utf8Encode)
.through(io.file.writeAll(Paths.get("testdata/new.txt")))
.compile.drain
// at the end of the universe...
val u: Unit = converter[IO].unsafeRunSync()