作为从本科阶段开始学单片机出身的笔者,对IO口情有独钟,这里对java中的IO流和单片机的IO口整体对比一下
1.java中的IO流
1.1 概述
- I:input,内存从硬盘中读取数据
- O:output,内存将数据写入硬盘中
Java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。以下是最典型的数据源和目标媒介:
- 文件
- 管道
- 网络连接
- 内存缓存
- System.in, System.out, System.error(注:Java标准输入、输出、错误输出)
1.2流
在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从流中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。
- 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象。
- 流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
- 流的作用:为数据源和目的地建立一个输送通道。
1.3java 中的IO流框架
IO流 | 输入流 | 输出流 |
---|---|---|
字节流 | InputStream | OutputStream |
字符流 | Reader | Writer |
对于OutpuStream来说,它是一个抽象类,用的时候需要用FileOutpuStream之类的子类
1.4 字节/符流区别:
- 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
- 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
- 一般来讲如果是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。
2.单片机中的IO口
单片机的I/O口的意思是:I/O是 input/output的缩写,即输入输出端口。
每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。