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