1.流的分类
- 按单位
- 字节流:以字节为单位(8位),可以读写所有数据
- 字符流:以字符为单位(16位),只能读写文本数据
- 按功能
- 节点流:具有实际传输数据的读写功能。
- 过滤流:在节点流的基础之上增强功能。
-
按方向
- 输入流:将 存储设备 中的内容读入到 内存 中。
- 输出流:将 内存 中的内容写入到 存储设备 中。
InputStreamReader和OutputStreamWriter,前者负责将InputStream转换为Reader,而后者负责将OutputStream转换为Writer。
2.字节流
2.1 InputStream的主要功能是将数据一个字节一个字节的读到内存,InputStream是一个抽象类。
-
int available()返回当前输入流中可以读取(或跳过)的字节数量的估量值(当前输入流没有被另一个方法请求而导致阻塞)。 -
void close()关闭当前输入流并且释放输入流占用的所有系统资源。 -
abstract int read()从当前位置开始,从输入流中读取下一个字节的数据(若读到流的尾部,返回-1)。 -
int read(byte[] b)从当前位置开始,从输入流中读取b.length个字节的数据存放到b中(实际读取到的数据要看输入流中的字节数,最多读取的数量就是b.length,返回值为实际读取的字节数)。 -
int read(byte[] b, int off, int len)从当前位置开始,从输入流中读取len个字节的数据存放到b中(字节存放的位置为b[off],b[off+1],… 。实际中读取的数据可能并没有len个字节,具体看输入流中还剩余在多少数据,返回值为实际读取的字节数)。
2.2 OutputStream的主要作用是将数据一个字节一个子集的写入到文件或者网络中,OutputStream也是抽象类。
-
void close()关闭输出流并释放该输出流占用的所有系统资源。 -
void flush()刷新当前输出流,并将该流中缓冲的字节数据全部写入到磁盘。 -
void write(byte[] b)将字节数组b中的数据全部写入到输出流中,要写入到磁盘需要调用flush()函数。 -
void write(byte[]b, int off, int len)将字节数组b中的数据,从off位置开始算起,写入len个字节到输出流。 -
abstract void write(int b)先将int转换为byte类型,然后将低位数据写入到输出流中。
3.字符流
3.1 Reader的主要功能是将数据一个字符一个字符的读入到内存,Reader是一个抽象类。
-
abstract viud close()关闭流,并且释放该流占用的所有系统资源。 -
int read()从流中读取单个字符。 -
int read(char[] cbuf)从当前位置读取cbuf.length个字符到cbuf数组中,但实际读取的字符个数取决于流中剩余字符个数,返回值为实际读取的字符个数。 -
abstract int read(char[] cbuf, int off, int len)从当前位置开始,从输入流中读取len个字节的数据存放到b中,字节存放的位置为b[off],b[off+1],… 。实际中读取的数据可能并没有len个字节,具体看输入流中还剩余在多少数据,返回值为实际读取的字节数。
3.2 Writer的主要功能是将数据一个字符一个字符的写入到文件或者网络中,Writer也是抽象类。
-
Writer append(char c)追加字符c到Writer流中,追加到尾部。返回值为追加后的此Writer。 -
Writer append(CharSequence csq)追加字符序列csq到Writer流中,追加到尾部,返回值为追加后的此Writer。 -
Writer append(CharSequence csq,int start,int end)追加字符序列csq的子序列到Writer流中,追加到尾部,返回值为追加后的此序列。 -
abstract void close()关闭流,在关闭之前会先调用flush()。 -
abstract void flush()刷新流,并将已经在流中的数据写入到磁盘指定位置。 -
void write(char[] cbuf)将字符数组写入到流中。 -
abstract void write(char[] cbuf, int off, int len)将字符数组cbuf中的指定部分写入到流中,从off开始,写入len个字符。 -
void write(int c)取int型的低16位组成一个字符,然后将这个字符写入到流中,忽略高16位数据。 -
void write(String str)将字符串写入到流中。 -
void Write(String str, int off, int len)将字符串·str·指定位置的子串写入到流中,子串起始位置为off,子串长度为len。
4.File类
代表物理盘符中的-一个文件或者文件夹。
-
createNewFile()创建一个新文件 -
mkdir()创建一 个新目录 -
delete()删除文件或空目录 -
exists()判断File对象所对象所代表的对象是否存在 -
getAbsolutePath()获取文件的绝对路径 -
getName()取得名字 -
getParent()获取文件/目录所在的目录 -
isDirectory()是否是 目录 -
isFile()是否是文件 -
length()获得文件的长度 -
listFiles()列出目录中的所有内容 -
renameTo()修改文件名
5.FileFilter接口
public interface FileFilter
-
boolean accept (File pathname)当调用File类中的listFiles()方法时,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可出现在listFiles()的返回值中。