Java--IO--InputStreamReader和OutputStreamWriter转换流

  1. 转换流要接据的问题:
    1. 当我们的文件是UTF-8的编码方式时,可以正常的读取,

    2. 将文件的编码方式改变一下重新读,乱码问题:

      1. 转换流是可以将字节流转换为字符流,同时 字节流还可以指定编码方式,用来解决乱码的问题

  2. 转换流InputStreamReader和OutputStreamWriter的介绍

    1.  

    2.  

       InputStreamReader:输入字节流转换为输入字符流:

      1. package com.model.io.reader.inputstreamReader;
        
        import java.io.*;
        
        /**
         * @Description:测试类
         * @Author: 张紫韩
         * @Crete 2021/6/19 11:31
         * 解决中文乱码问题:我们需要指定编码方式,且只有字节流可以指定编码方式,
         * 我们需要将字节里流变为字符流,同时指定编码方式,以此来解决中文乱码问题
         *
         * 将流进行转换同时,指定编码方式读取文件
         */
        public class InputStreamReaderDemo01 {
            public static void main(String[] args) throws IOException {
        
                String filePath="D:\\qq\\IDEA\\IdeaProjects\\java_mianshi_test\\mianshi_io\\src\\main\\resources\\File\\OutputStreamWriterDemo01.txt";
        
                String charSet="utf-8";
                //将文件字节输入流转换为字符输入流同时指定了编码方式,同时将字符输入流进行包装
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(
                                new FileInputStream(filePath), charSet));
        
                System.out.println(bufferedReader.readLine());
                bufferedReader.close();
                System.out.println("按照指定的编码方式"+charSet+"读取文件完成");
            }
        }
    3.  

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

      1. package com.model.io.writer.outputstreamwriter;
        
        import java.io.*;
        
        /**
         * @Description:测试类
         * @Author: 张紫韩
         * @Crete 2021/6/19 11:43
         *
         * 将字节输出流转换为字符输出流,同时指定编码方式,这样我们保存的文件就是以这中编码方式保存了
         *
         * 将流进行转换,同时指定编码方式保存文件
         */
        public class OutputStreamWriterDemo01 {
            public static void main(String[] args) throws IOException {
        
                String filePath="D:\\qq\\IDEA\\IdeaProjects\\java_mianshi_test\\mianshi_io\\src\\main\\resources\\File\\OutputStreamWriterDemo01.txt";
        
                String charSet="utf-8";
                BufferedWriter bufferedWriter = new BufferedWriter(  //包装流 (字节输出流的包装流)
                        new OutputStreamWriter(                      //转换流(字符输出流)
                                new FileOutputStream(filePath,true), charSet)); //字节输出流
        
                bufferedWriter.write("张紫韩");
                bufferedWriter.newLine();
                bufferedWriter.close();
                System.out.println("按照指定的编码方式"+charSet+"保存文件完成");
            }
        }

         

           

         

         

         

         

               

         

posted @ 2021-06-19 12:00  张紫韩  阅读(72)  评论(0编辑  收藏  举报