summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonna Malayeri <lindydonna@gmail.com>2011-03-07 22:35:36 +0000
committerDonna Malayeri <lindydonna@gmail.com>2011-03-07 22:35:36 +0000
commit3b467cdfe181953f60a8109410be205d8d9934c1 (patch)
treee90033b23328aab6554a6c66ff8021dbe2239d8c
parent3689a29fca753e51d72c6c81abf78dfc6ba51b92 (diff)
downloadscala-3b467cdfe181953f60a8109410be205d8d9934c1.tar.gz
scala-3b467cdfe181953f60a8109410be205d8d9934c1.tar.bz2
scala-3b467cdfe181953f60a8109410be205d8d9934c1.zip
Modify BufferedSource to use a BufferedLineIter...
Modify BufferedSource to use a BufferedLineIterator to speed up line-by-line reads on large files. Updated testfile which used this class. Closes #4186. Review (of fft.check) by prokopec.
-rw-r--r--src/library/scala/io/BufferedSource.scala17
-rw-r--r--test/files/specialized/fft.check2
2 files changed, 16 insertions, 3 deletions
diff --git a/src/library/scala/io/BufferedSource.scala b/src/library/scala/io/BufferedSource.scala
index fe66b289e6..5df52d45e3 100644
--- a/src/library/scala/io/BufferedSource.scala
+++ b/src/library/scala/io/BufferedSource.scala
@@ -6,8 +6,6 @@
** |/ **
\* */
-
-
package scala.io
import java.io.{ InputStream, BufferedReader, InputStreamReader }
@@ -27,5 +25,20 @@ class BufferedSource(inputStream: InputStream, bufferSize: Int)(implicit val cod
val reader = bufferedReader()
Iterator continually (codec wrap reader.read()) takeWhile (_ != -1) map (_.toChar)
}
+
+ class BufferedLineIterator extends Iterator[String] {
+ val bufReader = BufferedSource.this.bufferedReader()
+ var nextLine = bufReader.readLine
+
+ override def hasNext() = nextLine != null
+
+ override def next(): String = {
+ val result = nextLine
+ nextLine = bufReader.readLine
+ result
+ }
+ }
+
+ override def getLines(): Iterator[String] = new BufferedLineIterator
}
diff --git a/test/files/specialized/fft.check b/test/files/specialized/fft.check
index f61fd55f50..eb56a2a879 100644
--- a/test/files/specialized/fft.check
+++ b/test/files/specialized/fft.check
@@ -1,4 +1,4 @@
Processing 65536 items
Boxed doubles: 0
-Boxed ints: 786441
+Boxed ints: 2
Boxed longs: 1442031