IO概述
什么是IO
在生活中编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。
那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。
我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出 output,即流向内存是输入流,流出内存的输出流。
Java中I/O操作主要是指定使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫作写出数据。
IO的分类
根据数据的流向分为:输入流和输出流。
>输入流:把数据从其他设备上读取到内存中的流。
>输出流:把数据从内存中写出到其他设备上的流。
格局数据的类型分为:字节流和字符流。
顶级父类们
输入流 | 输出流 | |
字节流 |
字节输入流 InputStream |
字节输出流 OutputStream |
字符流 |
字符出入流 Reader |
字符输出流 Writer |
一切皆为字节
一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。
所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。