阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第16章:字节流与字符流:课时78:转换流

所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转换操作,为此在java.io包里面提供有两个类:InputStreamReader、OutputStreamWriter

类:OutputStreamWriter:InputStreamReader:
定义:public class OutputStreamWriter extends Writerpublic class InputStreamReader extends Reader
构造方法:public OutputStreamWriter​(OutputStream out)public InputStreamReader​(InputStream in)

在这里插入图片描述
通过类的继承结构与构造方法可以发现,所谓的转换处理就是将接收到的字节流对象通过向上转型变为字符流对象。
范例:观察转换

package cn.mldn.demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    	File file = new File("D:" + File.separator + "hello" + File.separator + "mldn.txt") ;
    	if(file.getParentFile().exists()) {
    		file.getParentFile().mkdirs(); // 父目录必须存在
    	}
    	OutputStream output = new FileOutputStream(file);
    	Writer out = new OutputStreamWriter(output); // 字节流变为字符流
    	out.write("www.mldn.cn"); // 直接输出字符串,字符流适合于处理中文
    	out.close();
    }
}

在这里插入图片描述
讲解转换流的主要目的基本上不是为了让开发者去记住它,而是知道有这样的一种功能,但同时更多的是需要进行结构的分析处理。通过之前的字节流与字符流的一系列的分析之后你会发现OutputStream类有FileOutputStream直接子类、InputStream类有FileInputStream直接子类,但是来观察一下FileWriter、FileReader类的继承关系。

FileWriter:FileReader:
public class FileWriter extends OutputStreamWriterpublic class FileReader extends OutputStreamReader

在这里插入图片描述
在这里插入图片描述
实际上所谓的缓存都是指的是程序中间的一道处理缓冲区。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值