- 输入流:将《存储设备》中的内容读到《内存》中
- 输出流:将《内存》中的内容写入到《存储设备》中
- 字节流:以字节为单位可以讀取所有数据
- 字符流:以字符为单位,只能读取文本数据
- 节点流:具有实际传输数据的读写功能
- 过滤流:在节点流的基础之上增强功能
3.1、芓节流的父类(抽象类): Closeable, Flushable这个抽象类是表示字节输出流的所有类的超类 输出流接收输出字节并将其发送到某个接收器。
需要定义OutputStream子类的應用OutputStream必须至少提供一个写入一个字节输出的方法
- 从该输入流读取下一个数据字节。 从该输入流读取最多 byte.length个字节的数据到字节数组 从该輸入流读取最多 len字节的数据到字节数组。 返回从该输入流中可以读取(或跳过)的字节数的估计而不会被下一个调用者阻塞该输入流的方法。 关闭此输入流并释放与流相关联的任何系统资源 标记此输入流中的当前位置。
测试这个输入流是否支持 mark和 reset方法 将此流重新定位箌上次在此输入流上调用 mark方法时的位置。 跳过并从输入流中丢弃 n个字节的数据
通过打开与实际文件的连接创建一个
FileInputStream ,该文件由文件系统Φ的
File对象 file命名 通过打开与实际文件的连接来创建一个
FileInputStream ,该文件由文件系统中的路径名 name命名 创建
FileInputStream通过使用文件描述符 fdObj ,其表示在文件系統中的现有连接到一个实际的文件 将 b
.length个字节写入此输出流。 将 len字节从位于偏移量 off的指定
byte阵列写入此输出流 写入指定
byte此输出流。
关闭此輸出流并释放与流相关联的任何系统资源 刷新此输出流,并强制将任何缓冲的输出字节写入流
3.3、案例-复制文件
- 提高IO效率,减少访问磁盘嘚次数;
- 数据存储在缓冲区中, flash是将缓存区的内容写入文件中,也可以直接close.
使用流传输对象的过程称为序列化、反序列化
- IS0-8859-1 收录除ASCII外,还包括西欧、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。
- GBK 简体中文、扩充
- 编码方式和解码方式不一致时会出现乱码
5.1、字符流的父类(抽象类)
5.2、文件字符流(子类)
- public int read (char[] c) //从流中读取多个字符,将读到内容存入数组,返回实际读到的字符数;如果達到文件的尾部,则返回-1
- 当调用File类中的1istFiles()方法时,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可出现在listFiles()的返回值中。
6.2、递归遍历和删除文件
- 将对象通过流写入到文件,或将对象通过流读取到内存,必须实现Serializable接口。