//从键盘读入字节数据 字节流
InputStream in = System.in;
//InputStreamReader是转换流 把字节流转换成字符流
InputStreamReader isr = new InputStreamReader(in);
//为了提高效率,用BufferedReader装饰字符流isr
BufferedReader bur = new BufferedReader(isr);
三合一:
BufferedReader bur = new BufferedReader(new InputStreamReader(System.in));
String line = buf.readLine();
====================================================
//字节流,输出到控制台上。
OutputStream out = System.out; //成功到达!
/*
OutputStreamWriter 是转换流 把字节流转成字符流。
但其实它是字符流到字节流的桥梁,因为写入是从内存写到硬盘上
也就是说是从 缓冲区 -> 文件 缓冲区为字符流,文件为字节流。中间的就是转换流OutputStreamWriter
写入方向为: 缓冲流 -> 转换流 -> 文件流
*/
//第三步,它作为字符流到字节流的桥梁。自然是把字符流osw转换成字节流out啦
OutputStreamWriter osw = new OutputStreamWriter(out);
//为了提高写的效率,用BufferWriter装饰字符流osw
BufferedWriter buw = new BufferedWriter(osw);//第二步,缓冲区buw中有了字符line,也到了被其装饰的字符流osw中
三合一:
BufferedWriter buw = new BufferedWriter(new OutputStreamWriter(System.out));这是输出到控制台上
buw.write(line);//第一步,这是提高效率的缓冲流进行的write操作,当然是往缓冲区里写啦
总结:看后缀名。后缀Writer Reader操作的是字符流,而后缀InputStream和OutputStream操作的是字节流。
因此,转换流本身是字符流。