字节流

字节流类为处理字节式输入/输出提供了丰富的环境。一个字节流可以和其他任何类型的对象并用,包括二进制数据。这样的多功能性使得字节流对很多类型的程序都很重要。

字节流类以InputStreamOutputStream为顶层类,他们都是抽象类(abstract)

抽象类InputStreamOutputStream定义了实现其他流类的关键方法。最重要的两种方法是read()write(),它们分别对数据的字节进行读写。两种方法都在InputStreamOutputStream

中被定义为抽象方法。它们被派生的流类重写。每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络连接,甚至是内存缓冲区。要使用流类,必须导入java.io

三个基本的读方法

abstractint read():读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。

int read(byte[]b):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。

int read(byte[]b, intoff, intlen):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。

其它方法

long skip(longn):在输入流中跳过n个字节,并返回实际跳过的字节数。

int available():返回在不发生阻塞的情况下,可读取的字节数。

void close():关闭输入流,释放和这个流相关的系统资源。

void mark(intreadlimit):在输入流的当前位置放置一个标记,如果读取的字节数多于readlimit设置的值,则流忽略这个标记。

void reset():返回到上一个标记。

boolean markSupported():测试当前流是否支持markreset方法。如果支持,返回true,否则返回false

原文地址:https://www.cnblogs.com/daneres/p/4542591.html