问答详情
源自:4-1 字节流之文件输入流FileInputStream-1

int b = in.read(); 与int bytes = in.read(buf,0,buf.length);有什么差

int b = in.read();  这句代码执行后,b 表示读取到的字节。

int bytes  = in.read(buf,0,buf.length);执行后,bytes表示的是读到的字节个数。

是方法就是这样定义的吗?

提问者:K_Muxs 2016-10-03 16:00

个回答

  • 远方的云o
    2016-10-04 11:01:14
    已采纳

    这两个的差别,实际上是read()方法两种重载方式的差别。

    in.read()表示单字节读取,相当于一滴一滴水(字节)地去洒

    in.read(byte[] buf ,int start ,int size )表示字节先读取到buf缓冲区,start表示缓冲区的起始位置,size表示存入缓冲区的大小。这种方式相当于先把一滴一滴水(字节)放到一个桶(buf)里,当然这个桶肯定有大小(size),当桶里的水达到一定程度(缓冲区的极限)时,再将整个桶里的水洒出去。

    授人以鱼不如授人以渔

    详细课程可以去看看 慕课网Java专题的 【文件传输基础 Java I/O 流】

    http://www.imooc.com/learn/123