为了账号安全,请及时绑定邮箱和手机立即绑定

FileInputStream对象的read()方法返回的int数字到底是什么意思?

FileInputStream对象的read()方法返回的int数字到底是什么意思?

qq_杀意隆_0 2018-04-26 10:37:48
FileInputStream fileInputStream = new FileInputStream("test_dir/test_file.txt"); int x; while ((x = fileInputStream.read()) > -1) System.out.println(x);这个x的值可以大于127,显然不是字节(byte类型的取值是[-128, 127]),到底表示什么意思?
查看完整描述

7 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

InputStream 是用于读取字节流的,所以它返回的就是每个字节。

同时因为 Java 的 byte 类型是有符号的,所以需要用 int 来接收字节值。

“字节”并不仅仅指 Java 中的 byte 类型,这个术语指 8 位二进制数据。

查看完整回答
1 反对 回复 2018-04-26
  • qq_杀意隆_0
    qq_杀意隆_0
    那就是相当于返回无符号的字节数字?
  • qq_杀意隆_0
    qq_杀意隆_0
    那是否这个无参的read方法返回的int范围区间是[0, 255] ?
  • onemoo
    onemoo
    返回的就是字节值,一个 8 位二进制数。8 位二进制数只能表示 256 个值。 当作 int 时就是 0 到 255。 当作 byte 类型,那就表示 -128 到 127。
?
慢慢来我是helloworld

TA贡献2条经验 获得超0个赞

byte类型范围

查看完整回答
反对 回复 2018-04-26
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

https://img1.sycdn.imooc.com//5ae13c9000013bab10010080.jpg

从输入流里面读取的字节数。

查看完整回答
反对 回复 2018-04-26
  • qq_杀意隆_0
    qq_杀意隆_0
    字节数?什么意思?read方法每次只读取一个字节
  • onemoo
    onemoo
    他回答错了。无参数的 read 返回的就是字节值
  • 7 回答
  • 0 关注
  • 2408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信