[java IO流]之 IO概述

IO流概述

概述:

在程序中所有的数据都是以流的方式进行传输和保存的,程序通过输入流读取数据;当程序需要将一些数据长期保存起来的时候使用输出流完成。

IO流的本质:

本地设备与不同设备之间数据的传输,例如:本地文件拷贝,上传文件和下载文件等等。

注意:

1.但凡是对数据的操作,Java都是通过流的方式来操作的

2.程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。

3.IO流可以做到数据的持久化,但是IO流本质上是用来处理文件系统以及不同设备之间的数据传输。

IO流的分类:

有两种不同的分类方式:

按照数据传输的方向分类:

1.输入流:从外界(键盘、网络、文件…)读取数据到内存

2.输出流:用于将程序中的数据写出到外界(显示器、文件…)

按照传输的数据类型分类:

1.字节流:一般针对二进制文件【视频,音频,图片】

2.字符流:一般针对文本文件【xml、json、html、txt、md….】

**流的操作的三要素:

1.数据源:数据从哪里来。(内存可以当做目的地,也可以当做中转站)

2.目的地:数据到哪里去。(内存可以当做目的地,也可以当做中转站)

3.交通工具:

a.选对流的类型,是需要输入流还是需要输出流,还是两个都需要

b.根据确定的流向在IO流框架中选取自己认为最适合的流

字节流和字符流的区别:

1.读写单位不同:字节流以字节(8Bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

2.处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。例如:本文文件,json,html,css,js,xml

注意:只要是处理纯文本数据,就优先考虑使用字符流,除此之外都使用字节流

IO流继承体系结构图:

【java IO流】之 IO概述

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!