Ank*_*kit 2 java api byte java-io
我正在通过oracle API java.io.RandomAccessFile上课.
在类中有一个名为read()的方法,它从传递给构造函数的文件中读取数据的字节:
public int read()抛出IOException
从该文件中读取一个字节的数据.该字节以0到255(0x00-0x0ff)范围内的整数形式返回.如果尚未提供输入,此方法将阻止.
尽管RandomAccessFile不是InputStream的子类,但此方法的行为方式与InputStream的InputStream.read()方法完全相同.
返回:数据的下一个字节,如果已到达文件末尾,则返回-1.抛出:IOException - 如果发生I/O错误.如果已达到文件结尾,则不会抛出.
我很困惑,这是否意味着它从传递给构造函数的文件中读取8位数据并将读取的内容转换为int.
有什么建议?
究竟是什么令你感到困惑?
是的,它读取一个字节的数据,即8位,并将其作为包含范围0..255中的整数值返回.因此,如果有问题的文件恰好是文本文件,并且第一个字符是大写字母'A',read()则返回65.
它返回一个int而不是一个,byte以便它可以返回整个范围0..255作为正数,并且仍然有-1可用作文件结尾的标记值(尽管可以说是一个例外可能是一个更好的方法要做到这一点).