A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家都知道IO流用来处理设备之间的数据传输的,他的顶层基类有四个:
  • 字节流的抽象父类:
    InputStream
    OutputStream
  • 字符流的抽象父类:
    Reader
    Writer
       
但是在InPutStream的一个实现子类FileInPutStream中,在读取的时候会调用它的read()方法,它的返回值类型为int,
read()方法每次读取一个字节,为什么会返回int类型?
  • 1.字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111
  • 2.那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会在其前面补上
  • 3.24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马