zoukankan      html  css  js  c++  java
  • 转换流

    一  转换流

    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

  • 相关阅读:
    RSA
    DES
    MD5
    增删改查
    [转]数据绑定之DataFormatString
    分页通用存储过程(未验证)
    浅谈sql中的in与not in,exists与not exists的区别
    [转]order by 1是什么意思?
    bak骗子公司
    Performance Considerations for Entity Framework 4, 5, and 6
  • 原文地址:https://www.cnblogs.com/lxzwhite/p/10668462.html
Copyright © 2011-2022 走看看