IO流
在变量,数组,对象和集合中存储的数据都是暂时存在于内存,Java的I/O流可以将数据保存到文本文件和二进制文件,达到永久保存数据的要求。
IO流是Java进行I/O操作的对象,根据不同的标准有不同的划分
- 方向:输入流,输出流
- 数据单位:字节流,字符流
- 功能:节点流,处理流
输入流
所有输入流类都是InputStream抽象类(字节输入流)和Reader抽象类(字符输入流)的子类
1.InputStream类常用方法
名称 | 作用 |
---|---|
int read() | 从输入流读入一个 8 字节的数据,将它转换成一个 0~ 255 的整数,返回一个整数,如果遇到输入流的结尾返回 -1 |
int read(byte[] b) | 从输入流读取若干字节的数据保存到参数 b 指定的字节数组中,返回的字节数表示读取的字节数,如果遇到输入流的结尾返回 -1 |
int read(byte[] b,int off,int len) | 从输入流读取若干字节的数据保存到参数 b 指定的字节数组中,其中 off 是指在数组中开始保存数据位置的起始下标,len 是指读取字节的位数。返回的是实际读取的字节数,如果遇到输入流的结尾则返回 -1 |
void close() | 关闭数据流,当完成对数据流的操作之后需要关闭数据流 |
int available() | 返回可以从数据源读取的数据流的位数。 |
skip(long n) | 从输入流跳过参数 n 指定的字节数目 |
boolean markSupported() | 判断输入流是否可以重复读取,如果可以就返回 true |
void mark(int readLimit) | 如果输入流可以被重复读取,从流的当前位置开始设置标记,readLimit 指定可以设置标记的字节数 |
void reset() | 使输入流重新定位到刚才被标记的位置,这样可以重新读取标记过的数据 |
2.Reader类常用方法
名称 | 作用 |
---|---|
int read() | 从输入流中读取一个字符,并把它转换为 0~65535 的整数。如果返回 -1, 则表示 已经到了输入流的 |