欢迎光临
我们一直在努力

转换流:

1 问题:不同编码读取时会乱码

不同编码读取出现乱码问题时注意:
    1. 如果代码编码和被读取的文本文件的编码是不一致的,使用字符流读取文本文件时就会出现乱码!
    2. 如果代码编码和被读取的文本文件的编码是一致的,使用字符流读取文本文件时不会出现乱码!

Java给我们提供了另外两种流InputStreamReader,OutputStreamWriter,这两个流我们把它叫做转换流。它们可以将字节流转换为字符流,并且可以指定编码方案。

2 InputStreamReader类(字符输入转换流)

解决不同编码时,字符流读取文本内容乱码的问题。
解决思路:先获取文件的原始字节流,再将其按真实的字符集编码转成字符输入流,这样字符输入流中的字符就不乱码了。

InputStreamReader也是不能单独使用的,它内部需要封装一个InputStream的子类对象,再指定一个编码表,如果不指定编码表,默认会按照UTF-8形式进行转换。

3 OutputStreamWriter类(字符输出转换流)

作用:可以控制写出去的字符使用什么字符集编码。 
解决思路:获取字节输出流,再按照指定的字符集编码将其转换成字符输出流,以后写出去的字符就会用该字符集编码了。

OutputStreamReader也是不能单独使用的,它内部需要封装一个OutputStream的子类对象,再指定一个编码表,如果不指定编码表,默认会按照UTF-8形式进行转换。

二.打印流

2.1 打印流基本使用

打印流,这里所说的打印其实就是写数据的意思,它和普通的write方法写数据还不太一样,一般会使用打印流特有的方法叫print(数据)或者println(数据),可以实现更方便、更高效的打印(写出)数据出去,能实现打印啥出去就是啥出去。橙v

打印流有两个,一个是字节打印流PrintStream,一个是字符打印流PrintWriter,如下图所示

字节打印流PrintStream:

字符打印流PrintWriter:

1. PrintStream和PrintWriter的区别
    打印数据的功能上是一模一样的:都是使用方便,性能高效(核心优势)
    PrintStream继承自字节输出流OutputStream,因此支持写字节数据的方法。
    PrintWriter继承自字符输出流Writer,因此支持写字符数据出去。

2. 打印流的优势是什么?
    两者在打印功能上都是使用方便,性能高效(核心优势)因为底层使用了缓冲流。

赞(0)
未经允许不得转载:171主机测评 » 转换流:
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址