问题描述
我研究了一下read(byte[]b)方法,官方的解释如下从输入流中读取一定数量的字节并将其存储在缓冲区数组b中。以整数形式返回实际读取的字节数。在输入数据可用、检测到文件末尾或者抛出异常前,此方法一直阻塞。如果b为null,将抛出NullPointerException。如果b的长度为0,则无字节可读且返回0;否则,要尝试读取至少一个字节。如果因为流位于文件末尾而没有可用的字节,则返回值-1;否则,至少可以读取一个字节并将其存储在b中。将读取的第一个字节存储在元素b[0]中,下一个存储在b[1]中,依次类推。读取的字节数最多等于b的长度。让k为实际读取的字节数;这些字节将存储在元素b[0]至b[k-1]之间,不影响元素b[k]至b[b.length-1]。如果不是因为流位于文件末尾而无法读取读取第一个字节,则抛出IOException。特别是,如果输入流已关闭,则抛出IOException。我的理解是,如果b.length>0得情况下,这个read(byte[]b)方法只可能返回-1或者>0得正整数。兄弟们,这个理解正确吗?
解决方案
解决方案二:
这个read不是有个返回值么?这个值表示从byte的0位置开始往里塞了多少个字节。
解决方案三:
建议看英文的文档中文的翻译大多时候都是怪怪的
解决方案四:
引用1楼bao110908的回复:
这个read不是有个返回值么?这个值表示从byte的0位置开始往里塞了多少个字节。
我想知道什么情况下面返回0,我看api得说明的意思是如果byte[]b这个变量的length是0得时候,就返回0其他不可能返回0
时间: 2024-09-17 07:01:30