查看API得知:
public class OutputStreamWriter extends Writer
public class InputStreamReader extends Reader
OutputStreamWriter:是Writer的子类,将输出的字符流转变为字节流;
InputStreamReader:是Reader的子类,将输入的字节流转变为字符流;
为什么要使用转换流?
操作字节流对于程序来说过于繁琐,程序员更偏爱操作字符。所以,当面对一些字节流的操作时,
我们可以将其转换为字符流再进行操作,这样便非常方便了。
需要注意的是:转换流同样使用了包装的思想,其构造方法接收的同样为IO流对象,并非某个文件资源。关闭转换流的同时即关闭了对应的字节流。
实例01: package cn.itcast05; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class ZhuanHuanDemo01 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("a.txt"); FileOutputStream fos = new FileOutputStream("a6.txt"); InputStreamReader isr = new InputStreamReader(fis); OutputStreamWriter osw = new OutputStreamWriter(fos); int c; while((c=isr.read())!=-1) { osw.write(c); } isr.close(); osw.close(); } }