with file reader

This commit is contained in:
Mark Canlas 2022-12-01 07:07:05 -05:00
parent 26a1e8c823
commit d4410bcde3
4 changed files with 30 additions and 3 deletions

2
data/example.txt Normal file
View File

@ -0,0 +1,2 @@
foo
bar

View File

@ -0,0 +1,9 @@
package com.htmlism.firepower.demo
import java.nio.file.Path
case class File(path: Path)
object File:
def apply(first: String, fragments: String*): File =
File(Path.of(first, fragments: _*))

View File

@ -1,8 +1,11 @@
package com.htmlism.firepower.demo
import zio.*
import java.io.IOException
object PrintPrograms extends ZIOAppDefault:
def run: IO[IOException, Unit] =
Console
.printLine("Hello, World!")
def run: ZIO[Any, Throwable, Unit] =
File("data/example.txt")
.contents
.map(println)

View File

@ -0,0 +1,13 @@
package com.htmlism.firepower
import java.nio.charset.Charset
import java.nio.file.Files
import zio.*
package object demo:
implicit class FileOps(f: demo.File):
def contents: Task[String] =
ZIO.attempt {
Files.readAllBytes(f.path)
}.map(xs => new String(xs, Charset.defaultCharset()))