流的分类
这里的输入输出是以我们程序为参照物
输入流 从持久化向程序的内存中输入 Input
输出流 从内存向持久化输出 Output
节点流 就是原生的输入输出流 和处理流 将原生的节点流包装处理
也可以分为 字节流 和字符流
这四个类是流的基类
特点 我们如何区分他是字节流还是字符流 看后缀
以Stream 结尾的是字节流 以 Reader Writer 结尾的是字符流
字节流的基类 | 节点流 | 处理流(也叫做缓冲流) |
---|---|---|
InputStream | FileInputStream | BufferedInputStream |
OutputStream | FileOutputStream | BufferedOutputStream |
字符流的基类 | 节点流 | 处理流(也叫做缓冲流) |
Reader | FileReader | BufferedReader |
Writer | FileWriter | BufferedWriter |
操作文件的基本步骤
- FileReader
方法
read() 返回读取的字符 编码 可以转成char
没有字符可以读取了返回-1
使用read的重载 里面填充char数组 注意这里要读取多少转换多少
建议char数组的长度为1024或者1024的倍数 或者512
但凡读取完我们一定要关闭流
输出流
程序的内存向持久化(文件)输出
在写入文件的时候 文件不存在会自动创建的
文件在写入的时候 默认是覆盖原文件
如果不想覆盖 而是想添加 那就在构造器后面加一个参数true
操作文件主要分为两个方向 如果文本文件就使用字符流
如果其他文件就使用字节流
字符流和字节流 我们看后缀的
Reader 和Writer 结尾的是字符流
Stream 结尾的是字节流