码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-07-05 23:02:48      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:输出流   esc   转化   缓冲流   stack   package   nal   查看   解决   

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基础复习-转换流的使用

标签:输出流   esc   转化   缓冲流   stack   package   nal   查看   解决   

原文地址:https://www.cnblogs.com/elnimo/p/13252289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!