一、流的分类
按照方向进行分类:输入流 输出流
按照处理的单位进行分类:字节流 字符流
组合:字节输入流 字符输入流 字节输出流 字符输出流
学习思路:抽象父类的公共方法,子类对象的创建方式,主要看子类的构造方法
1.字节输入流
抽象父类:InputStream --不能创建对象
子级:
1)FileInputStream --操作文件的字节输入流
构造方法的参数:File file/String pathname
2)BufferedInputStream --高效/缓冲字节输入流
构造方法的参数:InputStream,但无法创建抽象父级的对象,所以传入的是FileInputStream对象
2.字节输出流
抽象父类:OutputStream --不能创建对象
子级:
1)FileOutStream --操作文件的字节输出流
构造方法的参数:File file/String pathname
注意:除了上述两个构造方法以外,文件字节输出流对象创建的时候还可以指定输出的方式
默认存在一个参数boolean append,默认值为false,默认覆盖
如果将这个append的值设置为true,数据时按追加的效果输出,不覆盖文件中的原数据
2)BufferedoutStream --高效/缓冲字节输出流
构造方法的参数:OutputStream,但无法创建抽象父级的对象,所以传入的是FileOutputStream对象
3.字符输入流
抽象父类:Reader --不可实例化
子级:
1)FileReader --操作文件的字符输入流
构造方法的参数:File file/ String filename
2)BufferedReader --高效/缓冲字符输入流
构造方法的参数:Reader,抽象父级无法实例化,所以传入的是自己FileReader
4.字符输出流
抽象父类:Writer --不可实例化
子级:
1)FileWriter --操作文件的字符输出流
构造方法的参数:File file/ String filename
注意:除了上述两个构造方法以外,文件字符输出流对象创建的时候还可以指定输出的方式
默认存在一个参数boolean append 默认值为false,默认覆盖
如果将这个append的值设置为true,数据时按追加的效果输出,不覆盖文件中的原数据
2)BufferedWriter --高效/缓冲字符输出流
构造方法的参数:Writer 抽象父类无法实例化,所以传入的是自己FileWriter