转换流的使用(InputStreamReader,OutputStreamWriter)
我们如何设置字节输入流、字节输出流的编码和解码格式?
在字节输入流(InputStream)、字节输出流(OutputStream)中,并没有提供设置编码和解码格式的方法。
InputStream的API文档如下:
![48de37d2-294d-46d0-a3cc-211c0e0737c2.png](https://images0.cnblogs.com/blog/709529/201507/092010061588871.png)
因为字节输入输出流并没有提供相应的方法,让我们对编码和解码格式进行设置。
那么我们就要使用转换流,来对字节流的编码进行设置。
何为转换流?
通过API可得知,转换流就是字节流通向字符流的桥梁。它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
如:InputStreamReader的API:
![360反馈意见截图165801057571126.png](https://images0.cnblogs.com/blog/709529/201507/092010067522758.png)
这下子就好办了,我们只要把输入流“丢进”这个转换流,再给它指定一下字符集,它便会自己进行编码了。
如 : new InputStreamReader(new InputStream(),"UTF-8");
new OutputStreamWriter(new OutputStream(),"UTF-8");