Java randomAccessFile int -1

intread();读取一个字节,并以int形式返回,但是该int值的二进制信息只有低八位。若int的值表示为-1,则表示读取到了该文件末尾。这计划怎么理解啊... int read();
读取一个字节,并以int形式返回,但是该int值的二进制信息只有低八位。
若 int的值表示为-1,则表示读取到了该文件末尾。
这计划怎么理解啊
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
冷叶忆雪
推荐于2016-06-22 · TA获得超过1018个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:166万
展开全部

看下 JDK 的方法说明:

所以说 int read() 方法是 读取一个字节并返回,只是返回的时候以 int 返回,因为读取的是 一个字节(8个 bit),所以读取的信息保存的返回的 int 的低八位(int 为 4 个字节有 32 个bit)。你一定纳闷为什么读取 byte 要用 int 返回呢?

如果返回 byte, 则无法表示流末尾,因为byte的取值范围是从 -128 到 127(-1 在这当中)。read() 方法内部将读取到的字节转为 int 返回, 这样做所有的数据都会是非负数(0~255),这时就可以用 -1 表示流末尾了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式