首页 理论教育 Java语言程序设计:字节数组输入流简介

Java语言程序设计:字节数组输入流简介

时间:2026-01-26 理论教育 东北妞 版权反馈
【摘要】:Byte ArrayInputStream 类可以从内存的字节数组中读取数据,该类有如表7-5所示两种构造方法重载形式。代码如下所示:在该示例中,字节输入流bais从字节数组b的第一个元素开始读取4字节元素,并将这4字节转换为int类型数据,最后返回。字节类型的-1,二进制形式为11111111,转换为int类型后的二进制形式为00000000 00000000 0000000011111111,对应的十进制数为255。

Byte ArrayInputStream 类可以从内存的字节数组中读取数据,该类有如表7-5所示两种构造方法重载形式。

表7-5 ByteArrayInputStream 类构造方法表

图示

【例7-7】 使用Byte ArrayInputStream 类编写一个案例,实现从一个字节数组中读取数据,再转换为int型进行输出。代码如下所示:

图示

图示

在该示例中,字节输入流bais从字节数组b的第一个元素开始读取4字节元素,并将这4字节转换为int类型数据,最后返回。

提示:上述示例中除了打印i的值外,还打印出了(byte)i的值,由于i的值是从byte类型的数据转换过来的,所以使用(byte)i可以获取原来的byte数据。(https://www.xing528.com)

该程序的运行结果如下:

图示

从上述的运行结果可以看出,字节类型的数据-1和-22转换成int类型的数据后变成了255和234,对这种结果的解释如下:

字节类型的1,二进制形式为00000001,转换为int类型后的二进制形式为00000000 00000000 0000000000000001,对应的十进制数为1。

字节类型的-1,二进制形式为11111111,转换为int类型后的二进制形式为00000000 00000000 0000000011111111,对应的十进制数为255。

可见,从字节类型的数转换成int类型的数时,如果是正数,则数值不变;如果是负数,则由于转换后,二进制形式前面直接补了24个0,这样就改变了原来表示负数的二进制补码形式,所以数值发生了变化,即变成了正数。

提示:负数的二进制形式以补码形式存在,如-1,其二进制形式是这样得来的:首先获取1的原码00000001,然后进行反码操作,1变成0,0变成1,这样就得到11111110,最后进行补码操作,就是在反码的末尾位加1,这样就变成了11111111。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈