IO流的作用:
文件读写,数据通信 ,IO流在网络编程上应用得比广泛。注意点:字符流和字节流的使用,传输的文本内容,可以用字符流,传输图片内容用字节流IO的分类:
根据数据的流向分为:输入流和输出流。
输入流:把数据从其他设备上读取到内存中的流。输出流:把数据从内存中写出到其他设备上的流。根据数据的类型分为:字节流和字符流
字节流:以字节为单位,读写数据的流。字符流:以字符为单位,读写数据的流。导图一张:
java.Io.InputoutStream:字节输入流,此抽象类是表示字节输入流的所有的超类,将指定的字节信息写出到目的地。java.Io.Reader:字符输入流,此抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存。字节流 在计算机中一切皆为字节,一切文件数据(包括:文本,图片,视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。 所以,字节流可以(传输任意文件数据)。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。
字符流 当使用字节流读取文件时,可能会有一些问题,遇到中文字符时,有可能会现实不完整的字符,原因是中文字符可能占用多个字节存储。所以java提供了字符流类,用以字符为的那位读写数据,专门用于处理文本文件。
整体的概括: 小知识点:
1个字节=8个比特位
任意的文本编辑器(记事本,notepad++…)在打开文件的时候都会查询编码表,把字节转换为字符表示:
0-127:查询ASCII表
97:对应的就是a
其他值:查询系统默认码表(中文系统GBK)