流的介绍和字节流

一、流的介绍

  • 概念:内存与存储设备之间传输数据的通道。

  • 水借助管道传输;数据借助流传输。

  • 分类:按方向

    • 输入流:将<存储设备>中的内容读入到<内存>中

    • 输出流:将<内存>中的内容写入到<存储设备>中

  • 分类:按单位

    • 字节流:以字节为单位,可以读写所有数据

    • 字符流:以字符为单位,只能读写文本数据

  • 分类:按功能

    • 节点流:具有实际传输数据的读写功能

    • 过滤流:在节点流的基础之上增强功能


二、字节流

  • 字节流的父类(抽象类):

    • InputStream:字节输入流(存储->内存)

      • public int read(){}

      • public int read(byte[] b){}

      • public int read(byte[] b,int off,int len){}

    • OutputStream:字节输出流(内存->存储)

      • public void write(int n){}

      • public void write(byte[] b){}

      • public void write(byte[] b,int off,int len){}


三、文件字节流

  • FileInputStream:

    • public int read(byte[] b); //从流中读取多个字节,将读取到的内容存入b数组,返回实际读到的字节数;如果达到文件的尾部,则返回-1

    • 单个读取的时候需要定义一个int 来存储读取到的数据,int返回每次读取到的数据,结束读取的条件是int =-1

    • 多个读取的时候需要定义一个byte[] 来存储读取到的数据,数组的大小为每次读取的个数,int 返回每次读取的个数,读取的结束条件是int = -1

  • FileOutputStream:

    • public void write(byte[] b); //一次写多个字节,将b数组中所有字节写入输出流

    • 每次写入都会覆盖,如果不想覆盖,需要在初始化FileOutputStream时传入true


四、字节缓冲流

  • 缓冲流:BufferedInputStream/BufferedOutputStream

    • 提高IO效率,减少访问磁盘的次数

    • 数据存储在缓冲区中,flush是将缓冲区的内容写入文件中,也可以直接close

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值