IO流的操作规律:
字符流:
FileReader
FileWriter
BufferedReader
BufferedWriter
InputStreamReader
字节流:
FileInputStream
FileOutputStream
BufferedInputStream
1.开发是,用哪个流对象解决问题?
1)明确一:明确源和目的
源:就需要读,则需要输入体系(InputStream、 Reader)。
目的:就需要写,则需要输出体系(OutputStream、Writer)。
2)明确二:处理的数据是否是纯文本数据
是:就使用字符流。
源:Reader
目的:Writer
否:就是用字节流。
源:InputStream
目的:OutputStream
两个明确都确定后,可以确定需要使用那个体系。
3)明确三:具体是那个设备,目的是为了确定具体的对象
源设备:
键盘:System.in
硬盘:操作文件的对象。File开头的流对象
内存:数组
网络:Socket
目的设备:
硬盘: 操作文件的对象。File开头的流对象
屏幕(控制台):System.out
内存:数组
网络:Socket
2.示例
需求:对文本文件的复制
分析:明确1:源和目的
源:InputStream Reader
目的:OutputStream Writer
明确2:是否是纯文本
是:
源:Reader
目的:Writer
明确3:具体的设备
源:硬盘
目的:硬盘
FileReader fr=new FileReader("demo.txt");
明确4:额外功能
需要:高效
BufferedReader bufr=new BufferedReader(new FileReader("demo.txt"))
BufferedWriter bufw=new BufferedWriter(new FileWriter("demo1.txt"))
小记:
键盘录入:
InputStream in=System.in;
int ch=in.read();