最后1个read都到了文件的末尾了,返回-1了,按理说,这时再去read,应该是空,read应该阻塞,后面内容就不应该执行了啊,为什么后面两个read还返回-1,还能输出。
还请大佬给我解释这涉及到read阻塞么?和new scanner(system.in).netInt()阻塞等待键盘输入 区别在哪
return the next byte of data, or -1 if the end of the stream is reached
API上不就这么写的吗
关注点不是这个
@xiaofang.bk: 读文件不涉及阻塞好不啦,和new scanner(system.in).netInt()又不一样
这个不是 你自己写的末尾输出 三个 System.out.println(bte);???
看清问题
首先你的试验已经证明了read不会阻塞。
你去看看源码InputStream的read方法不会因为读取不到内容就阻塞掉。
Scanner.next方法有可能产生阻塞,This method may block while waiting for input to scan, ...
推荐去看看源码。