字节流的两个顶层类是抽象类:InputStream和OutputStream
1. OutputStream
void write(int b) | 往流中写一个字节b |
void write(byte b[]) | 往流中写一个字节数组b |
void write(byte b[],int off,int len) | 把字节数组b中从下标off开始,长度为len的字节写入流中 |
flush() | 刷空输出流,并输出所有被缓存的字节,由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中 |
close() | 流操作完毕后必须关闭 |
2. InputStream
int read() | 读取一个字节,返回值为所读得字节 |
int read(byte b[]) | 读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的字节的数量 |
int read(byte b[] ,int off,int len) | 读取len个字节,放置到以下标off开始字节数组b中,返回值为实际读取的字节的数量 |
int available() | 返回值为流中尚未读取的字节的数量 |
long skip(long n) | 读指针跳过n个字节不读,返回值为实际跳过的字节数量 |
void mark(int readlimit) | 纪录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后 所标记的指针位置才实效 |
void reset() | 把读指针重新指向用mark方法所记录的位置 |
boolean markSupported() | 当前的流是否支持读指针的记录功能 |
close() | 流操作完毕后必须关闭 |
3.下面简单介绍字节流的几个常用子类
抽象类InputStream和OutpurStream定义了实用的方法,其中最主要的是read()和write()。
这两个方法在InputStream和OutputStream中声明为抽象方法,由子流类overwrite实现。
字节流类 |
功能简单介绍 |
DataInputStream |
包含了读取Java标准数据类型的输入流 |
DataOutputStream |
包含了写Java标准数据类型的输出流 |
ByteArrayInputStream |
从字节数组读取的输入流 |
ByteArrayOutputStream |
写入字节数组的输出流 |
FileInputStream |
从文件读入的输入流 |
FileOutputStream |
写入文件的输出流 |
PrintStream |
包含最常见的Print()和Println()的输出流 |
PushbackInputStream |
返回一个字节到输入流,主要用于编译器的实现 |
PipedInputStream |
输出管道 |
PipedOutputStream |
输入管道 |
SequenceInputStream |
将n个输入流联合起来,一个接一个按一定顺序读取 |
RandomAccessFile |
随机访问文件 |
BufferInputStream |
缓冲输入流 |
BufferOutputStream |
缓冲输出流 |
FilterInputStream |
实现了InputStream Interface |
FilterOutputStream |
实现了OutputStream Interface |
InputStream |
抽象类,描述流的输入 |
OutputStream |
抽象类,描述流的输入 |