Skip to content

Instantly share code, notes, and snippets.

@haydenk
Created September 4, 2025 15:16
Show Gist options
  • Select an option

  • Save haydenk/1f9b64145f4a87a3f45455ca55faf3fd to your computer and use it in GitHub Desktop.

Select an option

Save haydenk/1f9b64145f4a87a3f45455ca55faf3fd to your computer and use it in GitHub Desktop.

Revisions

  1. haydenk created this gist Sep 4, 2025.
    25 changes: 25 additions & 0 deletions file_reader_writer.scala
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    import java.io.{BufferedReader, BufferedWriter, FileReader, FileWriter}

    def withFileWriter(filename: String) (handler: BufferedWriter => Unit): Unit = {
    val writer = new BufferedWriter(new FileWriter(filename))
    try handler(writer)
    finally writer.close()
    }

    def withFileReader(filename: String) (handler: BufferedReader => Unit): Unit = {
    val reader = new BufferedReader(new FileReader(filename))
    try handler(reader)
    finally reader.close()
    }

    withFileWriter("Hello.txt") {
    writer => { writer.write("Hello\n"); writer.write("World!") }
    }

    var result: String = ""

    withFileReader("Hello.txt") {
    reader => { result = reader.readLine() + "\n" + reader.readLine() }
    }

    assert(result == "Hello\nWorld!")