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.
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!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment