java中的IO流学习总结

it2023-06-12  74

IO流:

可以看作是一种数据的传输,也可以看做是一种数据的流动。按照流动的方向,以内存为基准,分为Inputoutput,即:流向内存是输入流,流出内存的是输出流:数据(字符,字节)1个字符=2个字节=8个二进制位

IO流的作用:

文件读写,数据通信 ,IO流在网络编程上应用得比广泛。注意点:字符流和字节流的使用,传输的文本内容,可以用字符流,传输图片内容用字节流

IO的分类:

根据数据的流向分为:输入流和输出流。

输入流:把数据从其他设备上读取到内存中的流。输出流:把数据从内存中写出到其他设备上的流。

根据数据的类型分为:字节流和字符流

字节流:以字节为单位,读写数据的流。字符流:以字符为单位,读写数据的流。

导图一张:

java.Io.InputoutStream:字节输入流,此抽象类是表示字节输入流的所有的超类,将指定的字节信息写出到目的地。java.Io.Reader:字符输入流,此抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存。

字节流   在计算机中一切皆为字节,一切文件数据(包括:文本,图片,视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。 所以,字节流可以(传输任意文件数据)。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。

字符流   当使用字节流读取文件时,可能会有一些问题,遇到中文字符时,有可能会现实不完整的字符,原因是中文字符可能占用多个字节存储。所以java提供了字符流类,用以字符为的那位读写数据,专门用于处理文本文件。

整体的概括: 小知识点:

1个字节=8个比特位

任意的文本编辑器(记事本,notepad++…)在打开文件的时候都会查询编码表,把字节转换为字符表示:

0-127:查询ASCII表

97:对应的就是a

其他值:查询系统默认码表(中文系统GBK)

最新回复(0)