Java IO 字符流和字节流
最近在 开发用到蓝牙,因为项目是对一些通讯协议进行解析,用到些 字节流的知
识,在这里做个总结。
里面要分清楚两个基本概念,即字符流和字节流。
先来看一下流的概念:
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读
取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
网上这方面的文章很多,这篇主要介绍解析协议时用到的 知识。在 包中操作文件内
容的主要有两大类:字节流、字符流。
在我的程序里面,蓝牙连上之后协议在传输过程中是以字节形式进行传输,因此本篇博客将主
要介绍字节流。
字节流:
InputStream 的 API
、
从输入流读取下一个数据字节。返回 到 范围内的 字节值。如果因已到达流末尾而
没有可用的字节,则返回值 。
、
从输入流中读取一定数量的字节并将其存储在缓冲区数组 中。以整数形式返回实际读取的字
节数。如果因为流位于文件末尾而没有可用的字节,则返回值 ;否则,至少可以读取一个字
节并将其存储在 中。此方法等同于 !"
#、 $
将输入流中最多 个数据字节读入字节数组。尝试读取多达 字节,但可能读取较少数量。
以整数形式返回实际读取的字节数。如果由于已到达流末尾而不再有数据,则返回 。
参数:
读入数据的缓冲区。
$在其处写入数据的数组 的初始偏移量。
要读取的最大字节数。
OutputStream 的 API
、%
将指定的字节写入此输出流。%的常规协定是:向输出流写入一个字节。要写入的字节是
参数 的八个低位。的 &个高位将被忽略。
、%