Java--IO--InputStreamReader和OutputStreamWriter转换流
- 转换流要接据的问题:
-
当我们的文件是UTF-8的编码方式时,可以正常的读取,
-
将文件的编码方式改变一下重新读,乱码问题:
-
转换流是可以将字节流转换为字符流,同时 字节流还可以指定编码方式,用来解决乱码的问题
-
-
-
转换流InputStreamReader和OutputStreamWriter的介绍
-
-
InputStreamReader:输入字节流转换为输入字符流:
-
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+"读取文件完成"); } }
-
-
OutputStreamWriter:输出字节流转换为输出字符流
-
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+"保存文件完成"); } }
-
-