想要知道开发用到哪些对象,只要通过四个明确即可
1,明确源和目的
愿:InputStream Reader
目的:OutputStream Writer
2,明确数据是否是纯文本数据
愿: 愿:是纯文本:Reader
否:InputSteam
目的:是纯文本Writer
否:OutputStream
3,明确具体设备
原设备:
硬盘:File
键盘:System.in
内存:数组
网络:Socker流
目的设备
硬盘:File
键盘:System.out
内存:数组
网络:Socker流
4,是否需要其他额外功能
1,是否需要高效(缓冲区)
是,就加上buffer
===================================================
需求1:复制一个文本文件
1,明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2,是否是纯文本
是
源:Reader
目的:Writer
3,明确具体设备
源:
硬盘:File
目的:
硬盘:File
FileReader fr=new FileReader("a.txt");
FileWriter fw=new FileReader("b.txt");
4,需要额外功能吗
需要
BufferedReader bufr=new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufw=new BufferedWriter(new FIleWriter("b.txt"));
============================================================================
需求2:读取键盘录入信息,并写入到一个文件中
1,明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2,是否是纯文本吗
是,
源:Reader
目的:Writer
3,目的设备
源:键盘:System.in
目的:硬盘:File
InputStream in=System.in;
FileWriter fw=new FileWriter("b.txt");
这样做可以完成,但是麻烦,将读取的字节数据转成字符串,再有字符流操作
4,需要额外功能吗
需要: 转换 将字节流转成字符流。因为明确的源是Reader,这样操作吻别数据做便捷
所以要将已有的字节流转成字符流。使用字节--->字符 InputStreamReader
InputStreamReader inr=new InputStreamReader(System.in);
FileWriter fw=new FileWriter("b.txt");
还需要高效吗
需要:
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(new FileWriter("b.txt"));
需求3:讲一个文本文件显示在控制台上
1,明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2,是否是纯文本吗
是,
源:Reader
目的:Writer
3,明确具体设备:
源: 硬盘:File
目的:控制台:Sytem.out
FileReader fr=new FileReader("a.txt");
OutputStream out=System.out;
4,需要额外功能吗
需要转换:fr=new FileReader("a.txt");
OutputStream osw=new OutputStreamWriter(System.out);
需要高效
BufferedReader bufer=new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
需求4:读取键盘录入数据,显示在控制台上
1,明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2,是否是纯文本吗
是,
源:Reader
目的:Writer
3明确设备
源;键盘:System.in
目的:控制台:System.out
InputStream in=System.in;
OutputStream out=System.out;
4,明确额为功能
需要转换,因为都是字节流,但是操作的却是文本数据
所以使用字符流操作更为便捷
InputStreamReader in=new InputStreamReader(System.in);
OutputStreamWriter osw=new OutputStreamWriter(System.out);
为了将起高效
BufferedReader bufr=new BufferedReader(InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(OutputStreamWriter(System.out));