IO概述
什么是IO
- 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了Ctrl+s,可能文件就白白编辑了。当你电脑上插上一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在那些设备上呢?键盘、内存、硬盘、外接设备等等。
- 我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分别输入input和输出output,即流向内存是输入流,流出内存的为输出流。
- Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做写出数据。
IO的分类
- 根据数据的流向分为:输入流和输出流。
- 输入流:把数据从其他设备上读取到内存中的流。
- 输出流:把数据从内存写出到其他设备上的流。
- 格局数据的类型分为:字节流和字符流。
- 字节流:以字节为单位,读写数据的流。
- 字符流:以字符为单位,读写数据的流。
流的四大类
- 字节输入流:以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流称为字节输入流。
- 字节输出流:以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流称为字节输出流。
- 字符输入流:以内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流称为字符输入流。
- 字符输出流:以内存为基准,把内存中的数据以字符写出到磁盘文件或者网络介质中去的流称为字符输出流。
IO的流向说明图解
顶级父类们
输入流 | 输出流 | |
---|---|---|
字节流 | 字节输入流 InputStream | 字节输出流 OutputStream |
字符流 | 字符输入流 Reader | 字符输出流 Writer |