Skip to content

Instantly share code, notes, and snippets.

@tachesimazzoca
Created October 4, 2016 00:49
Show Gist options
  • Select an option

  • Save tachesimazzoca/222a09d956c464515f4070546ba76841 to your computer and use it in GitHub Desktop.

Select an option

Save tachesimazzoca/222a09d956c464515f4070546ba76841 to your computer and use it in GitHub Desktop.
Scala Utils
import java.io.BufferedReader
import java.io.Closeable
import java.io.File
import java.io.FileInputStream
import java.io.InputStream
import java.io.InputStreamReader
import java.nio.charset.Charset
object IOUtils {
def fileInputStream(path: String): InputStream =
new FileInputStream(new File(path))
def bufferedReader(input: InputStream): BufferedReader =
new BufferedReader(new InputStreamReader(input, Charset.defaultCharset()))
def bufferedReader(input: InputStream, encoding: Charset): BufferedReader =
new BufferedReader(new InputStreamReader(input, encoding))
def lineIterator(reader: BufferedReader): Iterator[String] =
Iterator.continually(reader.readLine()).takeWhile(_ != null)
def withLineIterator[T](
input: InputStream
)(block: (Iterator[String]) => T): T = {
withLineIterator(input, Charset.defaultCharset())(block)
}
def withLineIterator[T](
input: InputStream,
encoding: Charset)(block: (Iterator[String]) => T): T = {
var br: BufferedReader = null
try {
br = bufferedReader(input, encoding)
block(lineIterator(br))
} catch {
case e: Throwable => throw e
} finally {
closeQuietly(br)
}
}
def closeQuietly(o: Closeable) {
try {
if (o != null) o.close()
} catch {
case _: Throwable =>
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment