对于转换流的理解

Posted xhlwjy

tags:

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

一:概述

转换流:字符流转字节流,字节流转字符流

使用场景:解决乱码问题

    public static void main(String[] args) throws IOException 
     //源文件为gbk编码
/*FileReader fr=new FileReader("a.txt"); OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("b.txt"),"utf-8"); int i; while((i=fr.read())!=-1) osw.write(i); fr.close(); osw.close();*/
     //源文件为utf-8编码 InputStreamReader isr
=new InputStreamReader(new FileInputStream("b.txt"),"utf-8"); FileWriter fw=new FileWriter("a.txt"); int j; while((j=isr.read())!=-1) fw.write(j); isr.close(); fw.close();

 

下面为图解编码和解码

 

技术图片

 

解码:字节流转字符流

编码:字符流转字节流

 

流程:1.读取源文件(gbk)的字节流到内存中,根据平台默认的编码表(gbk)进行解码成字符流

   2.字符流(gbk)编码为字节流(utf-8与目标文件一致),此处使用OutputStreamWriter将gbk转换为utf-8编码

 

总结:

无论是读取的时候,还是写出的时候,都需要参考读取文件和目标文件的编码形式 读取源文件时,源文件的编码需要和解码的编码形式一致 写出到目标文件时,编码形式必须和目标文件的编码形式一致

以上是关于对于转换流的理解的主要内容,如果未能解决你的问题,请参考以下文章

day17-缓冲流&转换流&序列化流&打印流&Properties

Java学习笔记6.2.2 字符流 - 字节字符转换流

Java学习笔记6.2.2 字符流 - 字节字符转换流

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

IO流 写入转换流(写入和读取转换流的区别,考虑方向)

Java IO流--转换流的使用