我有一个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
答案 0 :(得分:1)
read
方法返回读取的字节数。仅在缓冲区中使用这些字节。 E.g。
var len = 0
while ({len = in.read(buffer); len} > 0) {
println(new String(buffer, 0, len))
}