v
Спамеры в тлг умеют в личку писать.
Size: a a a
v
DS
(for {writeAll не лениво создаёт файл, а при создании пайпа? что-то это странно как-то
file <- files
name = file.getName
} yield Files[IO]
.readAll(file.toPath, 4096)
.through(text.utf8Decode)
.map {
case "some" ⇒
Some("some")
case _ ⇒
None
}
.collect { case Some(s) => s }
.through(text.utf8Encode)
.through(Files[IO].writeAll(outputDir.resolve(name + ".result")))
.compile
.drain).sequence
EK
(for {writeAll не лениво создаёт файл, а при создании пайпа? что-то это странно как-то
file <- files
name = file.getName
} yield Files[IO]
.readAll(file.toPath, 4096)
.through(text.utf8Decode)
.map {
case "some" ⇒
Some("some")
case _ ⇒
None
}
.collect { case Some(s) => s }
.through(text.utf8Encode)
.through(Files[IO].writeAll(outputDir.resolve(name + ".result")))
.compile
.drain).sequence
DS
ΛВ
(for {writeAll не лениво создаёт файл, а при создании пайпа? что-то это странно как-то
file <- files
name = file.getName
} yield Files[IO]
.readAll(file.toPath, 4096)
.through(text.utf8Decode)
.map {
case "some" ⇒
Some("some")
case _ ⇒
None
}
.collect { case Some(s) => s }
.through(text.utf8Encode)
.through(Files[IO].writeAll(outputDir.resolve(name + ".result")))
.compile
.drain).sequence
Files[IO].writeAll(outputDir.resolve(name + ".result")
вот тут используется name из фора, нет?DS
ΛВ
Files[IO]
.readAll(file.toPath, 4096)
читает стрим каких-то элементов, дальше этот стрим как-то преобразуется, фильтруется, а потом этот стрим пишется в файлик, даже если в нем отфильтровалось всеEK
writeAll
- это библиотечная функция. Вы удивляетесь, что она работает не так. Ну я утверждаю, что создавать пустой файл для нее - нормальное поведение. Если его изменить, то удивленных людей будет не меньше, а больше.DS
f
.collect { case Some(s) => s }
` выполнение всё равно пройдет в through
? ОгоDS
.collect { case Some(s) => s }
` выполнение всё равно пройдет в through
? ОгоDS
M
.collect { case Some(s) => s }
` выполнение всё равно пройдет в through
? Огоf
EK
DS
M
FS2 takes care to guarantee that any resources allocated by the Pull are released when the stream completes- посему я делаю вывод, что данный этап работает по принципу пулл - значит, что он сам спрашивает нет ли там новых данных и логика fs2 такова, что ресурс инициализируется через уже привычный паттерн брекетов до того как спросить и убедиться есть ли там чего.
EK
files.map(file => ...)
Oℕ
DS