在Java中,使用BufferedInputStream和BufferedOutputStream进行文件读写时,假设你创建了一个BufferedInputStream并指定了缓冲区大小为64字节。若你从该流中读取了128字节的数据,接下来你调用了close()方法。以下哪种说法是正确的?
答案解析
本题考察BufferedInputStream的工作机制及close()方法的作用。BufferedInputStream的缓冲区用于提高读取效率,close()方法会关闭流并释放资源,同时会将缓冲区中的数据写入目标流。选项A错误,因为close()方法不会因为读取字节数超过缓冲区大小而抛出异常。选项B正确,因为close()方法会确保缓冲区中的数据被写入。选项C错误,close()方法不会导致数据丢失。选项D错误,因为close()方法的作用是关闭流,而不是保留数据。
正确答案:B