为什么返回类型的输入流关闭int?

时间:2014-08-08 22:15:53

标签: java byte inputstream

关掉这个问题  Issue regarding the return value of the read() function in java?

为什么read方法的返回类型是int的答案是输入流可以返回-1(EOF标记) 我的问题是不能将-1表示为一个字节? 一位(0或1)可以表示正面或负面 其余的(7位代表绝对值) - 即0000001?

1 个答案:

答案 0 :(得分:3)

A"字节"是文件中的8位值。这些8位有256种可能的组合;这些是从0到255,或从-128到127的所有值,但是您想要查看它。 read()必须能够返回所有256个值,因为它们中的任何一个都可以在文件中。 read()还必须能够返回一些特殊标记以指示文件结束。因此,read()必须能够返回257个不同的值,如果它返回byte则无法执行此操作,因为byte只有256个可能的值。