Scala缓冲输入流阅读器

时间:2017-04-28 13:29:10

标签: scala bufferedreader

我有一个scala程序,如下所示

object TestApp {
  def main(args: Array[String]): Unit = {
    val in = new BufferedInputStream(new FileInputStream("testBytes.txt"))
    val buffer = Array.ofDim[Byte](15)
    while (in.read(buffer)>0) {
      println(new String(buffer))
    }
  }
}

输入文件包含" AAAAAAAAAABBBBBBBBBB"

当我运行此程序时,我得到以下结果

AAAAAAAAAABBBBB
BBBBBAAAAABBBBB

我很困惑为什么缓冲区会保留旧的读取数据,还是以任何方式避免这种情况?

我期待这样的事情

AAAAAAAAAABBBBB
BBBBB

1 个答案:

答案 0 :(得分:1)

read方法返回读取的字节数。仅在缓冲区中使用这些字节。 E.g。

var len = 0
while ({len = in.read(buffer); len} > 0) {
  println(new String(buffer, 0, len))
}