IO流
一、IO流分类:
①按数据传输方法划分:
输入流 输出流
②按读写数据的方式划分:
字节流 字符流
③按功能划分:
基础流 包装流
二、字节流:
1.字节输入流:FileInputStream
- public int read(){}。
- .public int read(byte[] b){}。
- public int read(byte[] b,int off,int len){}。
特点:每次读取单个字节的方式读取整个文件的内容
优化:每次读取单个字节的方式读取整个文件的内容。这样会频繁访问磁盘,造成效率低下。
因此,创建一个字节数组作为缓冲区
1.字节输出流:FileOutputStream
- public void write(int n){}。
- public void write(byte[] b){}。
- public void write(byte[] b,int off,int len){}。
public int read(byte[] b)。
特点:从流中读取多个字节,将读到内容存入b数组,返回实际读到的字节数。
如果达到文件的尾部,则返回-1。
三、字符流:
1.字符抽象类
Reader:字符输入流
- public int read(){}。
- public int read(char[] c){}。
- public int read(char[] b,int off,int len){}。
Writer:字符输出流
- public void write(int n){}。
- public void write(String str){}。
- public void write(char[] c){}。
2.字符节点流
FileWrite:
- public void write(String str) 。
- 一次写多个字符,将b数组中所有字符,写入输出流
FileReader:
- public int read(char[] c) 。
- 从流中读取多个字符,将读到内容存入c数组,返回实际读到的字符数,如果达到文件的尾部,则返回-1。