java小白用read方法读取txt中的一个存在负数的byte数组,结果出现了很多过万的数,为什么? 5C

如图,写入一个byte数组到一个txt文件里,这个数组里有-128~127的数字。然后用read方法读取出来,运行的时候发现,只要是原数组里的负数,输出的结果都是上万的数,像65536之类的,而且在负数之后的那一个数字也消失了,就好像两个数合并输出了一样。
图片说明

图片说明

图片说明

图片说明

2个回答

write(int a)这个方法,它的功能是写入a代表的byte值,也就是说,该函数实际上是将a 的后八位写入到文件中 , 而read这个函数返回的是八位的无符号数,所以你的负数是显示不出来的

楼上说得对,还有也得注意

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问