问答详情
源自:4-5 字节缓冲流

read的返回值

read()返回值是什么? 两个地方弄得很糊涂啊! int bytes = in.read(buf,0,buf.length); int j = 1; for(int i = 0; i < bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+"  "); } ------------------------------------------------------------- while((c = in.read())!=-1){ out.write(c); out.flush(); }

提问者:Robin_Jang 2016-05-07 10:36

个回答

  • 雨季忆
    2016-08-26 13:27:58

    read() 的返回值是int类型,返回语句是这样:return getBufIfOpen()[pos++] & 0xff;其中getBufIfOpen()是一个获取数组的方法 返回值是byte[]类型,而getBufIfOpen()返回的数组的索引是[pos++]其实指的就是下一个字节的内容!但是read()方法有一个if判断,如果没有内容了就返回-1,所以可以用于循环的判断条件!

  • 怒放的生命012
    2016-07-01 20:31:06

    while((c = in.read())!=-1){ out.write(c); out.flush(); 

    这里针对C ,c为什么又可以成为write的参数呢????c返回值不是应该代表读取的个数吗???如果c相当于读写的个数,那么c在wtite(c)中又代表什么意思呢???

    }

  • MaskTrueFeeling
    2016-06-22 23:38:13

    read(buf,0,buf.length)   返回的是读取字节的长度。
    read()   没参数的   返回的是指针对应的下一个字节。

  • 小楼倚月听微风
    2016-06-12 14:15:00

    读取字节的长度

  • UKILC
    2016-05-07 13:30:43

    读取的次数