转换流

一  转换流

1 OutputStreamWriter类

是字符流通向字节流的桥梁:

可使用指定的字符编码表,将要写入流中的字符编码成字节。它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。

复制代码
    public static void main(String[] args) throws IOException {
        //指定目的地 FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",true); //创建转换流 OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8"); osw.write("你好,小猪佩奇"); osw.flush(); //释放资源(你自己new了谁,就关谁,先开的后关)  osw.close(); fos.close(); }
复制代码

2 InputStreamReader类

是字节流通向字符流的桥梁:

它使用指定的字符编码表读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

复制代码
    public static void main(String[] args) throws IOException {
        //获取数据源 FileInputStream fis=new FileInputStream("E:\\java\\UTF-8.txt"); //创建转换流 InputStreamReader isr=new InputStreamReader(fis,"utf-8"); //开始读取 int len=0; while((len=isr.read())!=-1){ System.out.println((char)len); } //释放资源  isr.close(); fis.close(); }
复制代码

注意:在读取指定的编码的文件时,一定要指定编码格式,否则就会发生解码错误,而发生乱码现象。

3. 转换流和子类的区别

发现有如下继承关系:

OutputStreamWriter:

                   |--FileWriter:

InputStreamReader:

                 |--FileReader;

一旦要指定其他编码时,绝对不能用子类,必须使用字符转换流。什么时候用子类呢?

条件:

1、操作的是文件。2、使用默认编码。

总结:

字节--->字符 : 看不懂的--->看的懂的。  需要读。输入流。 InputStreamReader

字符--->字节 : 看的懂的--->看不懂的。  需要写。输出流。 OutputStreamWriter

转载于:https://www.cnblogs.com/lxzwhite/p/10668462.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值