查看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();
}
}