答案 0 :(得分:3)
它将值作为int
返回的原因是它需要返回0-255之间的值,并且能够指示何时没有更多字节要从文件中读取。通过使用int
,您可以返回整个范围的正无符号值0-255,以及指示文件何时完成。它无法仅提供256个byte
值的不同值,其中一半值是Java默认值为负值。
答案 1 :(得分:3)
答案 2 :(得分:2)
数据字节是无符号值,范围从0
到255
,而java中的byte
定义范围从-128
到{{1在读取二进制数据时没有意义。 127
返回一个整数以允许它使用所有非负值来表示有效数据,并使用负值来表示数据结束。
通常,函数应使用与用于返回数据的不同的机制来指示错误条件或异常。在最简单的情况下,它可以返回一个不能用于表示有效数据的值,以确保其含义是明确的。
答案 3 :(得分:1)
问:对于read()的返回类型,它是否更有意义 字节?
答:不,因为“byte”不能返回整个范围0..255(无符号),而“short”只是一个PITA。
答案 4 :(得分:0)
FileInputStream类可以将文件内容作为字节流读取。这是一个简单的例子:
InputStream input = new FileInputStream("c:\\data\\input-text.txt");
int data = input.read();
while(data != -1) {
//do something with data...
doSomethingWithData(data);
data = input.read();
}
input.close();
注意:为清楚起见,此处已跳过正确的异常处理。要了解有关正确异常处理的更多信息,请转至Java IO异常处理。
FileInputStream的read()方法返回一个int,其中包含读取的字节的字节值。如果read()方法返回-1,则流中不再有要读取的数据,并且可以将其关闭。也就是说,-1作为int值,而不是-1作为字节值。这里有区别!