Java BufferedReader.read(char[],int,int)能否返回0?
CanJava BufferedReader.read(char[],int,int)能否返回0?,java,bufferedreader,Java,Bufferedreader,CanBufferedReader.read(char[],int,int)返回0? 如果是,在什么情况下 我知道它在EOF处返回-1,否则返回读取字符数 但是是否有可能在不处于EOF时读取0字符?是的,如果第三个参数(len)为0,read将立即返回,并返回0 在所有其他情况下,这是不可能的*,因为读取方法(读卡器和InputStream)规定如下: 即使(当前)没有任何字节/字符可返回,也不要返回0-等待(阻塞),直到有一些字节/字符可用 如果没有字节/字符发生(只有在流/读取器关闭时才能
BufferedReader.read(char[],int,int)
返回0
?
如果是,在什么情况下
我知道它在EOF
处返回-1
,否则返回读取字符数
但是是否有可能在不处于
EOF
时读取0
字符?是的,如果第三个参数(len
)为0,read
将立即返回,并返回0
在所有其他情况下,这是不可能的*,因为读取
方法(读卡器和InputStream)规定如下:
- 即使(当前)没有任何字节/字符可返回,也不要返回0-等待(阻塞),直到有一些字节/字符可用
- 如果没有字节/字符发生(只有在流/读取器关闭时才能得出结论),则返回-1
available()
也不能做到这一点)
*)最后,
Reader
和InputStream
是接口,因此可以通过任何方式实现,任何实现都可以决定返回0,即使len
不是零。但是,这样的实现被破坏了,因为它不符合InputStream和Reader的规范。我不知道有任何核心库(在包java….
中)的实现是如此糟糕。是的,如果第三个参数(len
)为0,read
将立即返回,并返回0
在所有其他情况下,这是不可能的*,因为读取
方法(读卡器和InputStream)规定如下:
- 即使(当前)没有任何字节/字符可返回,也不要返回0-等待(阻塞),直到有一些字节/字符可用
- 如果没有字节/字符发生(只有在流/读取器关闭时才能得出结论),则返回-1
available()
也不能做到这一点)
*)最后,
Reader
和InputStream
是接口,因此可以通过任何方式实现,任何实现都可以决定返回0,即使len
不是零。但是,这样的实现被破坏了,因为它不符合InputStream和Reader的规范。我不知道有任何核心库(在包java….
中)的实现是如此糟糕。我想如果用len 0调用它,它可能会返回0。但你为什么要这么做?否则,它将永远不会返回0。我想,如果您使用0的len调用此函数,它可能会返回0。但你为什么要这么做?否则,它将永远不会返回0