我有一个如下所示的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
该read
方法返回读取的字节数。仅在缓冲区中使用这些字节。例如
var len = 0
while ({len = in.read(buffer); len} > 0) {
println(new String(buffer, 0, len))
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句