JAVA基础复习-转换流的使用

Posted 温森

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA基础复习-转换流的使用相关的知识,希望对你有一定的参考价值。

1、InputStreamReader的使用,实现了字节的输入流到字符的输出流的转化;

2、转换流与缓冲流都属于处理流;

3、构造方法的第二个参数,指明字符集,具体使用哪种字符集,取决于hello.txt保存时使用的字符集,否则乱码(文件的字符集可以通过EditPlus查看)

4、转换流解决了字节流读取文本文件在控制台输出时,可能出现乱码的问题;

package com.winson.iotest;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @description:转换流(转换流属于处理流)
 * @date: 2020/7/5 22:23
 * @author: winson
 */
public class InputStreamReaderTest {

    /**
     * InputStreamReader的使用,实现了字节的输入流到字符的输出流的转化
     */
    @Test
    public void test1() {
        InputStreamReader inputStreamReader = null;
        try {
            FileInputStream fileInputStream = new FileInputStream("hello.txt");
            //使用系统默认的字符集
//            inputStreamReader = new InputStreamReader(fileInputStream);
            //构造方法的第二个参数,指明字符集,具体使用哪种字符集,取决于hello.txt保存时使用的字符集,否则乱码
            //文件的字符集可以通过EditPlus查看
            inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");

            char[] chars = new char[20];
            int len;
            while ((len = inputStreamReader.read(chars)) != -1) {
                String s = new String(chars, 0, len);
                System.out.println(s);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStreamReader != null) {
                    inputStreamReader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

以上是关于JAVA基础复习-转换流的使用的主要内容,如果未能解决你的问题,请参考以下文章

动态SQL基础概念复习(Javaweb作业5)

阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_3_转换流的原理

Java基础知识复习

Java基础知识复习

javaIO流之字节到字符流的转换流

java流的概念和特点,复习指南