
java 如何判断字节流到末尾
用户关注问题
如何判断Java中的InputStream是否读取到了末尾?
在使用Java的InputStream读取数据时,怎样才能确认已经读取到了流的末尾?
通过返回值判断InputStream是否到达末尾
在Java中,使用InputStream读取数据时,如果read()方法返回-1,表示已经读取到了流的末尾,后续没有更多数据可以读取。这是判断字节流结束的标准方式。
使用BufferedInputStream读取字节流时,有没有特别的方式判断结束?
当用BufferedInputStream读取数据时,我该如何判断是否达到字节流的末尾?
同样通过read()方法返回值确定流结束
BufferedInputStream继承自InputStream,read()方法的返回值为-1时表示流已结束。因此判断读取结束的方式与InputStream一致。
可以使用available()方法来判断字节流是否读取完成吗?
用Java读取字节流时,能否通过available()方法判断数据是否读取完毕?
available()方法并不能保证是否到达流末尾
available()方法表示当前可以不阻塞地读取的字节数,而不是整个流的剩余字节数。因此不应依赖available()返回零来判断流是否结束,正确的判断方式是检测read()是否返回-1。