转换流

概述

转换流:把字节流转为字符流
转换流 = 字节流+编码表, 就是为了程序不要直接接触字节数据而且能看得懂的字符数据。

InputStreamReader: 把字节输入流转为字符输入流
	InputStreamReader(InputStream in)
	InputStreamReader(InputStream in, String charsetName)

OutputStreamWriter: 把字节输出流转为字符输出流

字节流: InputStream OutputStream, 操作是字节数据

字符流: Reader 和 Writer , 操作的是字符数据, 字符流是Java层面上对字节流进行的封装。

转换输入流InputStreamReader

public class Demo02 {
    public static void main(String[] args) {
        /*
         * 构造方法
         * InputStreamReader(字节流);
         * InputStreamReader(字节流,编码);
         * 将传入的字节输入流转为字符输入流
         * */
        InputStreamReader inputStreamReader = null;
        try {
            inputStreamReader = new InputStreamReader(new FileInputStream("C:\\Users\\GzhAnkh\\Desktop\\FileApiDemo03\\mkdij创建的目录\\FileApiDemo05.txt"));
            char[] chars = new char[10];
            int length;
            while ((length = inputStreamReader.read(chars)) != -1) {
                System.out.println(Arrays.toString(chars));
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStreamReader != null)
                    inputStreamReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

转换输出流OutputStreamWriter

public class Demo02 {
    public static void main(String[] args) {
        OutputStreamWriter outputStreamWriter = null;
        try {
            outputStreamWriter = new OutputStreamWriter(new FileOutputStream("C:\\Users\\GzhAnkh\\Desktop\\FileApiDemo03\\mkdij创建的目录\\FileApiDemo08.java"));
            char[] chars = {'1', '2', '3', '你', '我'};
            outputStreamWriter.write(chars);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                outputStreamWriter.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            if (outputStreamWriter != null)
                outputStreamWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

posted @ 2021-07-23 21:05  GzhAnkh  阅读(211)  评论(0)    收藏  举报