java每次读取一个字节_关于java:说一种方法读取一个字节的数据是什么意思?...

我正在通过java.io.RandomAccessFile类的oracle API。

类中有一个称为read()的方法,该方法从传递给构造函数的文件中读取字节数据:

public int read()

throws IOException

Reads a byte of data from this file. The byte is returned as an

integer in the range 0 to 255 (0x00-0x0ff). This method blocks if no

input is yet available.

Although RandomAccessFile is not a subclass of InputStream, this

method behaves in exactly the same way as the InputStream.read()

method of InputStream.

Returns:

the next byte of data, or -1 if the end of the file has been reached. Throws:

IOException - if an I/O error occurs. Not thrown if end-of-file has been reached.

我很困惑,是否表示要从传递给构造函数的文件中读取8位数据并将读取的内容转换为int。

有什么建议么?

它从源中读取"数据的八位位组"(八位位组= 8位)..在这种情况下,数据将来自打开的File,因为它是RandomAccessFile实现..(返回类型只是int 可以在EOF上返回-1,否则将是[0, 256))

到底是什么让您感到困惑?

是的,它读取一个字节的数据(即8位),并将其作为整数值(包括0..255)返回。因此,如果所讨论的文件恰好是文本文件,并且第一个字符是大写字母" A",则read()将返回65。

它返回一个int而不是一个byte,以便它可以将整个范围0..255作为正数返回,并且仍然具有-1作为文件结尾的定点值(尽管可以说是一个例外)将会是一种更好的方法)。

+1,我不确定字节从文件中读取的含义; 但字节的大小为(8位),范围为-128至127

对。 在Java中,byte是-128到127之间的有符号值。其他语言的无符号版本的范围是0到255。在英语中,"字节"是任何8位值,通常在内存或存储中 ; 在传输过程中,这样的值通常称为"八位位组"。 在非常古老的论文中(至少在1980年前),您可以找到"字节",该字节用于指代计算机的本机字长,而不管其位数是多少。

Java没有无符号类型。字节通常被解释为无符号时,是[0..255]范围内的整数。 read()也使用-1表示错误。因此,您需要一个至少包含257个不同值的类型。 Java int类型是32位有符号整数。因此,文档说它正在传递字节读取的8位无符号值或错误指示符,并以32位带符号返回类型作为容器传递该值。

简而言之,int的大脑屁。 固定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值