欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三、Java IO流 之转换流

程序员文章站 2024-03-05 15:08:42
...

当前已经有了两类数据流:字节流、字符流,可以发现在进行中文操作的时候字符流更加的方便,而且字符流是通过内部的转换得来的, 现在为了方便的实现字节流与字符流的转换处理,提供有两个类:
OutputStreamWriter、InputStreamReader

观察这两个类的继承结构。

OutputStreamWriter
public class OutputStreamWriter extends Writer
三、Java IO流 之转换流
InputStreamReader
public class InputStreamReader extends Reader
三、Java IO流 之转换流
通过继承的关系可以发现,InputStreamReader、OutputStreamWriter都是字符流的子类,同时又可以通过构造方法接收InputStream和OutputStream类的实例 (接收字节流的实例再向上转型成为字符流)。

例:观察数据流的转换

public class TestDemo_02 {
    public static void main(String[] args) throws Exception {
        //1、定义要进行磁盘输出的完整路径
        File file = new File("d:" + File.separator + "zzTest.txt");

        if (file.exists()) { //文件路径存在
  	    OutputStream outputStream = new FileOutputStream(file); //字节流
        Writer writer = new OutputStreamWriter(outputStream); //字符流转为字符流
        writer.write("字节流转换成字符流"); //可以直接输出字符串
        writer.write("\r\n你好世界");         //方便处理中文
        writer.close();//关闭流

        }
    }
}

执行结果:
三、Java IO流 之转换流
某些情况下系统只会给用户字节流,但是为了方便处理需要进行字符流的转换,这个时候才会使用到这个流。

1、观察FileOutputStream、FilelnputStream类的继承结构:
三、Java IO流 之转换流
2、观察FileWriter、FileReader类的继承结构:
三、Java IO流 之转换流
转换流 是文件输入输出流的父类 这再次体现了 文件中存储的是字节数据

相关标签: Java重点知识