前言
- 学习之前,需要对IO流的分类有个简单的认识,下列是关于本文的IO流分类介绍
IO流的分类
- 按流的方向划分
- 输入流
- 输出流
- 按流动的数据类型划分
- 字节流
- 字符流
本文提到的OutputStream、InputStream属于字节流
- 字节流
- 输入流
- 顶级父类InputStream
- 输出流
- 顶级父类OutputStream
- 还需要明确一个概念
- 计算机中的任何数据(文本、图片、视频等)都是二进制存储的
- 8个二进制位(bit)为一个字节(byte)
- IO流的底层都是二进制
- “流”其实就是传输数据的管道,把数据从管道的一段输送到另一端
- 流入管道的一方是输入流,即读取某些数据,放到管道中
- 流出管道的一方是输出流,即把管道里的数据,写入到某些文件中
一、java.io.OutputStream
1、概述
- 此抽象类是表示字节输出流的所有类的超类
- 也就是所有字节输出流的顶级父类
2、常用API
void close()
- 关闭此输出流,释放与该流有关的所有系统资源
- 当不再需要用到流对象时,尽早关闭流对象
- 如果不确定什么时候会用到流对象,那么在程序的最后一定要记得关闭流对象
void flush()
- 刷新此输出流,强制写出任何缓冲的字节数据
void write(byte[] b)
- 将字节数组b中存储的数据,通过输出流对象写出
void write(byte[] b, int off, int len)
- 将字节数组b中存储的数据,从起始下标off开始,通过流对象写出len个数据
abstract void write(int b)
- 该方法由子类实现,将指定的字节通过此流对象写出
- 写到文档时,写入的int数据会根据ASCALL表转化为对应的字符
二、FileOutputStream
1、概述
- 是字节输出流(OutputStream)最常用的子类