I/O流之转换流

本文介绍了Java中的I/O流体系,重点讨论了如何通过OutputStreamWriter和InputStreamReader将字节流转换为字符流。转换流的作用在于更好地处理中文字符,特别是字符流能直接输出字符串,简化了数据处理。FileReader和FileWriter作为字符流的实例,实际上也是转换流的子类。
摘要由CSDN通过智能技术生成

Java I/O流体系中按照处理的数据类型可分为字符流和字节流

字节流可以转换为字符流

  • OutputStreamWriter类: 将字节输出流变为字符输出流
  • InputStreamReader类 : 将字节输入流变为字符输入流

那么,为什么要把字节流转换为字符流呢?

首先来看一下这两个转换流的继承关系和构造方法

                    InputStreamReader                              OutputStreamWriter  
继承关系public class InputStreamReader extends Readerpublic class   OutputStreamWriter extends Writer
构造方法public InputStreamReader(InputStream in)public OutputStreamWriter(OutputStream out)

字符流虽然需要缓冲区进行处理,但是字符流输出有一个特点:可以直接输出一个字符串数据,所以有些时候就需要把字节流转换为字符流

总之,转换流的存在,就是为了更好地处理中文。

同时,我们根据以上I/O流体系图可以看出,FileReder类和FileWriter类都继承于转换流,即所有字符流处理的时候是经过转换后得来的。

范例:字节流转换为字符流

public class Test {
    public static void main(String[] args) {
      File file=new File("C:"+File.separator+"Users"+File.separator+"10320"+
                File.separator+"ideaProjects"+File.separator+"file.txt");
        if(!file.getParentFile().exists()) {//判断父目录存在
            file.getParentFile().mkdirs();//创建多级父目录
        }
        try {
            OutputStream output =new FileOutputStream(file);
            Writer out=new OutputStreamWriter(output);//字节流转换为字符流
            String message="hello word";
            out.write(message);
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值