知灵犀知练
← 返回

Java IO进阶简答题

FileChannel.read(buffer) 一次调用能保证填满缓冲区吗?

参考答案

不能;返回实际读取的字节数,0 表示本次未读到数据,-1 表示到达流末尾。需要按返回值循环。

题目解析

网络通道尤其可能发生部分读取;即使是文件通道,也不要把一次调用等同于完整消息。