最基本的四个抽象类,InputStream、OutputStream、Reader、Writer,最基本的方法是reda()和write()方法
1、InputStream
InputStream是一个定义了java流失字节输入模式的抽象类,主要方法定义如下
方法 | 方法介绍 |
---|---|
public int available() | 返回刻度的字节数量 |
public iint read(byte b[],int off, int len) | 把从第off位置读取长度len字节的数据放到byte数组中 |
public abstract int read() | 读取数据 |
public long skip(long n) | 跳过指定个数的字节 |
public void close() | 关闭流,释放资源 |
public synchronized void reset() | 重置读取位置为上次mark标记的位置 |
public boolean markSupported() | 如果调用的流支持mark/reset就返回true |
2、OutputStreeam
outputstream是定义了流式字节输出模式的抽象类,该类所有的方法返回一个void
方法 | 方法介绍 |
---|---|
void write(int b) | 向输出流写入单个字节 |
void write(byte buffer[]) | 向一个输出流写入一个完整的字节数组 |
void write(byte buffer[],int offset,int numBytes) | 写入数组buffer以buffer[offset]为起点的numBytes个字节区域的内容 |
void flush() | 刷新缓冲区 |
void close() | 关闭输出流 |
3、Reader
是java定义的流式输入模式的抽象类
方法 | 方法介绍 |
---|---|
int read() | 如果调用的输入流的下一个字符刻度则返回一个证书,遇到文件尾时返回-1 |
int read(char buffer[]) | 缓冲区中读取自负,返回实际成功读取的字符书。遇到文件尾返回-1 |
abstract int read(char buffer[],int offset,int numChars) | 试图读取buffer中从buffer[offset]开始的numChars个字符,返回实际成功读取的字符数。遇到文件尾返回-1 |
boolean ready() | 如果下一个输入请求不等待则返回true |
long skip(long numChars) | 跳过numChars个输入字符,返回跳过的字符数 |
boolean markSupported() | 判断当前流是否支持标记流 |
void reset() | 重置读取位置为上次mark标记的位置 |
void mark(int num) | 在输入流的当前位置设置一个标志,该输入流在num个字符被读取之前有效 |
abstract void close() | 关闭输入流 |
4、Writer类
Writer类是定义流式字符输出流的抽象类
方法 | 方法介绍 |
---|---|
void write(char buffer[]) | 向一个输出流写一个完整的字符数组 |
abstract void write(char buffer[],int offset,int num) | 向调用的输出流写入数组buffer以buffer[offset]为起点的num个字符区域的内容 |
abstract void close() | 关闭输出流 |
abstract void flush() | 刷新缓冲区 |
Writer append(CharSequence cs) | 追加一个字符 |
Writer append(CharSequence cs,int start,int end) | 追加一个字符序列的一部分,从start位置开始end位置结束 |
Writer append(char c) | 追加一个16位的字符 |
5、InputStream及其子类
FileInputStream 文件输入流:FileInputStream类创建一个能从文件读取字节的InputStream类
ByteArrayInputStream字节数组输入流:把内存中的一个缓冲区作为InputStream使用
PipedInputStream 管道输入流:实现了pipe管道的概念
SequenceInputStream顺序输入流:把多个InputStream 合并为一个InputStream
FilterInputStream 过滤输入流:其他输入流的包装
ObjectInputStream 反序列化输入流:将之前使用ObjectOutputStream 序列化的原始数据恢复为对象,以流的方式读取对象
DataInputStream : 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java 数据类型。
PushbackInputStream退回输入流:缓冲的用法,实现退回pushback,Pushback用于输入流允许字节被读取然后返回到流