转换流

在正常情况下,字节流可以对所有数据进行操作,但是有些时候在处理一些文本时我们要用到字符流,比如,查看文本时采用字符流更为方便,而在使用字节流时,当遇到中文及一些特殊字符时,就会出现乱码的情况,这是因为在UTF-8的字符编码下,中文占有3个字节。因此通常当我们在读取文本文件时,会选择使用字符流来处理。

除了使用字符流来读写文本文件时,我们还可以使用转换流,将字节流转换为字符流,从而解决中文UTF-8编码下的乱码问题。

所以 IO 流中提供了两种用于将字节流转换为字符流的转换流。

  • InputStreamReader用于将字节输入流转换为字符输入流。

  • OutputStreamWriter用于将字节输出流转换为字符输出流。

Drawing

InputStreamReader

InputStreamReader类用于将字节输入流转换为字符输入流。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

InputStreamReader类可与其它输入流一起使用。它被称为字节流和字符流之间的桥梁。

键盘输入流转换为字符流

OutputStreamWriter

OutputStreamWriter类用于将字符形式的数据转换为字节形式的数据。是字符流通向字节流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

最后更新于

这有帮助吗?