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

来源:4-1 字节流之文件输入流FileInputStream-1

K_Muxs

2016-10-03 16:00

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

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

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

写回答 关注

1回答

  • 远方的云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

    K_Muxs

    非常感谢!

    2016-10-04 12:09:46

    共 1 条回复 >

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题