字节输入流的read方法的int返回值问题

字节输入流的read方法的int返回值问题

字节输入流read()函数 

byte[] b;

int n = fp.read(b);

前面说过当n为-1的时候表示已经读完了

那等于其他值的时候有什么含义呢


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,其他值代表读取到的字节个数。read(byte[] b)方法是从输入流中读取最多b.length个字节的数据到字节数组b中。方法返回:读取到的字节个数,当文件的结尾已经达到,则返回-1。

例如要读取的文件中内容如下:

http://img1.sycdn.imooc.com//climg/6020a2fc093e3adc02400092.jpg

读取结果如下:

http://img1.sycdn.imooc.com//climg/6020a40709f2296d06820341.jpg

祝学习愉快~

  • 晓舟 #1

    最后一行显示的是1,并不是-1

    2021-07-07 14:25:32
  • 晓舟 #2

    想问下啥原因呢

    2021-07-07 14:25:46
  • 同学你好,1、read(byte[] b)方法会读取到的字节个数,当文件的结尾已经达到,才会返回-1。而在下图中有读取到数据,所以返回的是字节数,而不是-1。

    http://img1.sycdn.imooc.com//climg/60e56eb40994330c06860342.jpg

    2、并根据代码显示,循环条件是read(byte[] b)不为-1。所以当为-1时,会直接结束循环,从而不会输出数据(-1)。

    祝学习愉快!

    2021-07-07 17:08:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师