IO(6)----转换流(OutputStreamWriter)

本文深入探讨Java IO中的OutputStreamWriter转换流,讲解如何将字节流转换为字符流,用于处理字符编码,特别是在写入文本文件时的作用。内容包括构造方法、使用示例和常见应用。
摘要由CSDN通过智能技术生成

一、转换流概述                                                                                                                                            点击此处返回总目录

二、OutputStreamWriter 转换流

三、InputStreamReader 转换流

四、转换流子类父类的区别

 

 

 

一、转换流概述

中文版操作系统,编码都是GBK的。上一节中最后已经提到了,有的时候文本文件不一定是GBK的。(安装中文版的操作系统是,默认编码是GBK的)。unicode、utf-8等也可以存储中文,在不同的编码表里面,中文的表示含义不同。所以有时候存在编码问题。

 

不同的编码表,同一个汉字对应的编码是不一样的。比如:

GBK编码中,一个汉字对应2个字节,比如"刘"对应的编码为"-63 -11"。但是在utf-8编码中,一个汉字占3个字节,同样是"刘"对应的编码可能是"-17 -69 -65"。

 

我们存到文件中的都是字节。

比如我们想通过java程序把"刘"写到文件中,如果要求用GBK写,也就是说要在文件中写入"-63 -11"。这可以使用可以直接使用FileWriter来写入字符,因为默认编码就是GBK的。【例】

如果要求用utf-8写,也就是要在文件中写入"-17 -69 -65 ",怎么办呢?FileWriter不能控制编码表。这就需要用到字符转换流。首先通过字符转换流将汉字转成相应编码表对应的字节,然后调用字节输入流将字节写入文件。

 

之前学习的FileReader和FileWriter只能采用默认编码表,而不能指定编码。所以今天介绍转换流,可以对编码表进行操作。可以指定Unicode,也可以指定utf-8,这对以后的开发很有用,尤其是互联网程序。

 

例:使用FileWriter写入汉字,存进文件中的就是汉字在GBK中对应的字节。

package cn.itcast.demo04;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.i

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值