流的分类记忆:
1、方向分类 输入流 InputStream --> FileInputStream(文件)
输出流 outputStream ---> FileoutputStream(文件)
2、按照类型分类 字节流 --> 以字节的形式读取数据(复制文件)多为XXStream结尾
字符流 --> 以字符读取数据(文本文件)以write和read
reader-->fileReader-->BufferedReader(fileReader);
BufferedReader = 是一个过滤流;字符缓冲流
new PrintWriter(new BufferedWriter(new FileWriter("XXX")) );
BufferedWriter 缓冲过滤流;
3、按照操作方式
节点流 –》可以直接创建的流叫做节点流;例如FileInputStream FileoutputStream
过滤流 –》可以装饰节点流,增加相应的功能
//BufferedInputStream(必须传入一个具体的输入流);
//BufferedOutputStream (必须传入一个具体的输出流流)
过滤流嵌套节点流
BufferedInputStreambis = newBufferedInputStream(new FileInputStream("XXX"));写类同;
BufferedOutputStreambos = newBufferedOutputStream(new FileOutputStream("XXX"));
dataoutputStream – 数据过滤流:
DataOutputStream dos = new DataOutputStream(new FileOutputStream("XXX"));
dos.writeInt(1111);
DataInputStream dis = new DataInputStream(new FileInputStream("XXX"));
int a = dis.readInt();
//如果希望存储基本数据类型就使用DataoutputStream 也是过滤流
//从文件读取基本数据类型使用datainputStream
ObjectOutputStream –》过滤流; ---》必须序列话以后才能把对象写入对应的文件中
4、转换流 --->将字节流转换为字符流
InputStreamReader (记忆方法 inputStream to reader 把输入流转换为 字符流)
BufferedReader reader= new BufferedReader(new InputStreamReader(System.in));
InputStreamReader把System.in的字节流转换为字符流;