java 基础之I/O流

时间:2021-09-07 11:45:28

InputStream 抽象父类
OutputStream 抽象父类

方向 单位 功能

FileInputStream  输入流 字节流 节点流
 int read()
  方法直接返回读到的数据
 int read(byte[] data)
  方法返回实际读取的字节个数
 int read(byte[] data,int off,int len)
  方法同样返回实际读取的字节个数
 
FileOutputStream 输出流 字节流 节点流
 void write(int data)
 void write(byte[] data)
 void write(byte[] data,int off,int len)
 *:输出流连接的文件 无论是否存在都会自动地被新文件替换
 *:构造方法第二个参数 true 代表追加模式打开源文件
 *:输出流连接的目录如若不存在 直接出现异常
 *:输入流和输出流 不能连续的创建并且指向同一文件 

为节点流添加缓冲空间 从而提高每次读写的数据量 从而降低读写次数 提高效率
BufferedInputStream 输入流 字节流 过滤流
 int read(byte[] data,int off,int len)
BufferedOutputStream 输出流 字节流 过滤流
 void write(byte[] data,int off,int len);
 清空缓冲区的条件:
 1 缓冲空间满了
 2 关闭流 bos.close();
 3 手动清空 flush();
 构造方法(节点流,缓冲空间大小)

为节点流添加读写基本数据类型内存原型的功能
DataInputStream  输入流 字节流 过滤流
DataOutputStream 输出流 字节流 过滤流、

Reader
Writer

FileReader
 int read()
 int read()
 int read()
FileWriter
 void write(int data)
 void write(char[] data)
 void write(char[] data,int off,int len)

BufferedReader
 readLine()
BufferedWriter
 write(String) newLine() *:flush()/close()

PritnStream 字节
PrintWriter 字符
 1.既能当作节点流 又能当作过滤流
 2.既可以连接字节流 又可以连接字符流
 3.可以在构造方法第二个参数指定autoFlush 自动清空缓冲
 4.可以在构造方法第二个参数指定字符集
 5.我们对它一点也不陌生 用法等价于System.out
  println() = write() + newLine()

桥转换器
InputStreamReader
OutputStreamWriter