一、转换流概述 点击此处返回总目录 二、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中对应的字节。
|
IO(6)----转换流(OutputStreamWriter)
最新推荐文章于 2024-08-19 10:43:09 发布
本文深入探讨Java IO中的OutputStreamWriter转换流,讲解如何将字节流转换为字符流,用于处理字符编码,特别是在写入文本文件时的作用。内容包括构造方法、使用示例和常见应用。
摘要由CSDN通过智能技术生成