最主要是通过需求来选择出所需的流对象
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; public class Test1 { /* * 需求:通过键盘录入数据,将数据保存到一个文件中 * * 明确一:有源,有目的 * 源:InputStream Reader * 目的: OutputStream Writer * * 明确二:是纯文本的数据吗?是。 * 源:Reader * 目的:Writer * * 明确三:具体设备 * 源设备:System.in * 目的设备:硬盘 * * InputStream is = System.in; * FileWriter fw = new FileWriter("a.txt"); * *将读取到的字节存储到数组read(byte[])中 *将字节数组转成字符串 *通过fw.write(String)写入到文件 * *但是麻烦!!!! *因为明确源是Reader,需要将字节流转换成字符流,这样操作文字就便捷了。 * *明确四:需要功能吗? *需要,转换。字节-->字符。 InputStreamReader * * InputStreamReader isr = new InputStreamReader(System.in); * FileWriter fw = new FileWriter("a.txt"); *一次读取一个字符 *将读到的字符写入 * 当然也可以定义字符数组缓冲区 * * 需要其他功能吗? * 需要,高效 Buffer * * BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); * BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt")); * * line = readLine(); * bufw.write(String); * bufw.flush(); * */ public static void main(String[] args) throws IOException { methodDemo(); } public static void methodDemo() throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new FileWriter("tempfile\qujianleiceshi1.txt")); String str = null; while((str=bufr.readLine())!=null){ if("over".equals(str)) break; bufw.write(str); bufw.newLine(); bufw.flush(); } bufw.close(); bufr.close(); } }