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();
        }
    }
    
  • 相关阅读:
    python3+Appium自动化12-H5元素定位环境搭建
    夜神模拟器连不上adb的解决办法
    性能测试工具LoadRunner04-LR之浏览器打不开
    性能测试工具LoadRunner03-LR之Virtual User Generator 脚本创建以及回放设置
    性能测试工具LoadRunner02-LR简介
    JavaScript Math 对象
    【ES6】模拟字符串拼接
    【ES6】var / let / const
    媒体查询,响应式布局
    数组操作
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/11609145.html
Copyright © 2011-2022 走看看