readLines from URL

This commit is contained in:
Mark Harrah 2011-03-13 21:32:38 -04:00
parent d371ff9314
commit 10d2d4c14a
2 changed files with 3 additions and 2 deletions

View File

@ -508,12 +508,12 @@ object IO
private def writeBytes(file: File, bytes: Array[Byte], append: Boolean): Unit =
fileOutputStream(append)(file) { _.write(bytes) }
def readLinesURL(url: URL, charset: Charset = defaultCharset): List[String] =
urlReader(charset)(url)(readLines)
// Not optimized for large files
def readLines(file: File, charset: Charset = defaultCharset): List[String] =
fileReader(charset)(file)(readLines)
// Not optimized for large files
def readLines(in: BufferedReader): List[String] =
foldLines[List[String]](in, Nil)( (accum, line) => line :: accum ).reverse

View File

@ -84,6 +84,7 @@ object Using
def fileWriter(charset: Charset = IO.utf8, append: Boolean = false) =
file(f => new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f, append), charset)) )
def fileReader(charset: Charset) = file(f => new BufferedReader(new InputStreamReader(new FileInputStream(f), charset)) )
def urlReader(charset: Charset) = resource( (u: URL) => new BufferedReader(new InputStreamReader(u.openStream, charset)))
def jarFile(verify: Boolean) = file(f => new JarFile(f, verify), (_: JarFile).close())
def zipFile = file(f => new ZipFile(f), (_: ZipFile).close())
def streamReader = wrap{ (_: (InputStream, Charset)) match { case (in, charset) => new InputStreamReader(in, charset) } }