关于java中read()函数的返回值的问题?

Ank*_*lok 1 java

可能重复:
为什么InputStream#read()返回一个int而不是一个字节?

为什么返回read()的类型是整数?

嘿,我只是在I/O流上浏览java文档,并且只是在参考字节流时遇到了这个问题 - 如果输入是字节流,为什么read()不返回字节值?

我抓了一段时间,但想不出任何有力的答案,如果有人能提供帮助,我将不胜感激.

Xio*_*ion 6

这是因为read可以返回-1作为流结束(EOF)标记的指示符 - 即不再从流中读取字节.

更多详细信息:http://download.oracle.com/javase/1.4.2/docs/api/java/io/InputStream.html#read%28%29.特别:

如果由于到达流末尾而没有可用字节,则返回值-1.