Hayden King

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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!")

#Scala