zoukankan      html  css  js  c++  java
  • 转换流 -解决输入输出时编码格式不统一的问题

    转换流


    • 解决编码格式不统一,出现乱码问题
    • idea默认utf-8,Windows系统中文默认GBK,如,文件默认保存编码格式为GBK,在FileReader时会报错

    InputStreamReader


    • java.lang.Object
      继承者 java.io.Reader
      继承者 java.io.InputStreamReader
      因此拥有Reader的共性方法

    • 是FileReader的父类

    • InputStreamReader读InputStream送过来的字节时,会查询idea默认码表UTF-8,也可以查询指定的编码表,进行解码。

    • 构造方法:

      1. InputStreamReader(InputStream in)
        创建一个使用默认字符集的 InputStreamReader。
      2. InputStreamReader(InputStream in, String charsetName)
        创建使用指定字符集的 InputStreamReader。
    package convertedStream;
    
    import java.io.*;
    
    public class converted {
        public static void main(String[] args) throws IOException {
            //1.创建转换流,绑定输入文件,并指定编码格式
            InputStreamReader inre = new InputStreamReader(new FileInputStream("b.txt"),"gbk");
            //2.读入内存中
            char[] chars = new char[1024];
            int len = 0;
            while((len =inre.read(chars)) != -1){
                System.out.println(chars);
            }
            //3.释放资源
            inre.close();
        }
    }
    
    

    OutputStreamWriter


    • java.lang.Object
      继承者 java.io.Writer
      继承者 java.io.OutputStreamWriter
      因此拥有Writer的共性方法
    • 是FileWriter的父类
    • OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。编码过程。
    • 构造方法:
      1. OutputStreamWriter(OutputStream out)
        创建使用默认字符编码的 OutputStreamWriter。
      2. OutputStreamWriter(OutputStream out, String charsetName)
        创建使用指定字符集的 OutputStreamWriter。
        String charsetName:是编码表名称,不区分大小写,常用的有utf-8/GBK/。。。
        不指定默认使用utf-8
    package convertedStream;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    
    public class converted {
        public static void main(String[] args) throws IOException {
            //1.创建转换流,绑定输出对象
            OutputStreamWriter otw = new OutputStreamWriter(new FileOutputStream("b.txt"),"gbk");
            //2.默认会以utf-8写入,OutputStreamWriter - FileOutputStream - 写入
            otw.write("你好呀");
            //3.释放资源
            otw.close();
        }
    }
    
  • 相关阅读:
    大端序与小端序
    中断分类
    PHP开发框架[国内框架]
    PHP开发框架[流行度排名]
    ecshop 后台分页功能
    Windows下phpStudy中的Apache无法启动的排查方法
    Windows里配置Apache2.2+PHP5.3+mod_fcgid运行高效的FastCGI模式
    Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程
    让 Node.js 支持 ES6 的语法
    微信小程序请求wx.request数据,渲染到页面
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/11609145.html
Copyright © 2011-2022 走看看