我研究了一下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得正整数。兄弟们,这个理解正确吗?