想要知道开发用到哪些对象,只要通过四个明确即可 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));