IO流-字节流

1.IO的基本概念

  • 什么是IO流?(从实际应用案例来感性认识IO流的重要性,阅卷功能,上传,下载等等)(Input、Output)
    IO流如何划分?
  • 按方向分:输入流、输出流
    在这里插入图片描述
  • 按单位分:字节流、字符流(读取数据的单位)
    读文本文件:字符流
    文本文件,图片,视频(二进制文件):字节流
  • 按功能分:节点流、处理流
    你可以认为处理流功能更强大

2.数据单位换算

  • 计算机保存文件的最小单位是字节
    1K=1024字节
    1M=1024K
    1G=1024M
    1T=1024G
    1P=1024T

3.字节流(输入、输出)

  • 字节流是最早出现的流,因为计算机保存文件的最小单位就是字节
  • 成对出现的
  • API为我们提供了两个字节流的基类
    public abstract class InputStream
    extends Object
    implements Closeable
  • 此抽象类是表示字节输入流的所有类的超类。
    public abstract class OutputStream
    extends Object
    implements Closeable, Flushable
  • 此抽象类是表示输出字节流的所有类的超类。

4.应用驱动API学习-字节流

4.1.写内容到文件中

1)对异常直接抛出,不处理的方式
2)采用标准处理异常的方式
3)实现对文件内容的追加
4)如果文件不存在,会出现什么情况?

4.2.读取文件的内容

5)采用逐个字节的读取方式
6)如果文件不存在,会出现什么情况

4.3.完成文件的拷贝功能

7)完成普通文本文件的拷贝
8)完成二进制文件的拷贝
    a)图片
    b)视频

4.4.优化文件的读写性能

9)读写大文件,例如视频文件,还是采用一个一个字节复制,效率极低,所以API为我们提供了数组的读取功能,具备缓冲区的作用,提高效率
10)采用字节缓冲区流–处理流
public class FilterInputStream
extends InputStream
FilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterInputStream 类本身只是简单地重写那些将所有请求传递给所包含输入流的 InputStream 的所有方法。FilterInputStream 的子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。

设计模式:装饰者模式
public class BufferedInputStream
extends FilterInputStream

BufferedInputStream 为另一个输入流添加一些功能,在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。
public class FilterOutputStream
extends OutputStream
此类是过滤输出流的所有类的超类。这些流位于已存在的输出流(基础 输出流)之上,它们将已存在的输出流作为其基本数据接收器,但可能直接传输数据或提供一些额外的功能。
public class BufferedOutputStream
extends FilterOutputStream
该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值