Java转换流_java中的字符使用什么编码

Java转换流_java中的字符使用什么编码编码转换流字节流:针对二进制文件字符流:针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-81概述编码转换流(InputStreamReader/OutputStreamWriter)主要进行编码的转换,用来解决字符流读写乱码的问题2工具API学习OutputStreamWriter:OutputStreamWriter(OutputStreamout)把传入的字节流转成字符流OutputStreamWriter(OutputStreamout,Strin

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

编码转换流

字节流:针对二进制文件
字符流:针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-8

1 概述

编码转换流(InputStreamReader/OutputStreamWriter)主要进行编码的转换,用来解决字符流读写乱码的问题

2 工具API学习

OutputStreamWriter :
OutputStreamWriter(OutputStream out)把传入的字节流转成字符流
OutputStreamWriter(OutputStream out ,String charsetName)把Unicode转成其他编码输出

InputStreamReader :
InputStreamReader(InputStream in) 把传入的字节流转成字符流
InputStreamReader(InputStream in,String charsetName)读取其他编码转成Unicode

3 常见字符编码表

在这里插入图片描述

4 练习:编码转换测试

创建包: cn.tedu. encoding
创建类: TestEncode.java

package cn.tedu.encoding;

import java.io.*;

/*本类用于测试编码转换流*/
public class TestEncode { 
   
    public static void main(String[] args) { 
   
        method1();//用来测试OutputStreamWriter
        method2();//用来测试InputStreamReader
    }

    private static void method2() { 
   
        //1.创建一个在本方法中都生效的局部变量,并给变量初始化
        InputStreamReader in = null;
        //2.由于IO操作可能会抛出异常,所以需要try-catch-finally结构
        try{ 
   
            //3.创建针对于输入流的编码转换流对象
            in = new InputStreamReader(
                    new FileInputStream("1.txt"),"utf-8");
                    //new FileInputStream("1.txt"),"gbk");
                    //new FileInputStream("1.txt"),"iso-8859-1");
            //4.使用流读取数据,并将读取到的信息打印在控制台
            //read方法的返回值类型是int,打印的是编码
            //UTF-8-28023 gbk-23092 iso-8859-1-230
            //System.out.println(in.read());
            //拓展:将刚刚读到的数据,以中文的格式展示在控制台
            char[] ch = new char[8192];
            //Reader中的方法:read(char[] cbuf)将字符读入数组,返回读取到的字符的个数
            int len = in.read(ch);//len保存的是读取到的字符的个数
            //此处是String的构造函数,利用ch数组中的数据,构建一个字符串,并打印到控制台
            System.out.println(new String(ch,0,len));
            System.out.println("恭喜您!成功读取!");
        }catch (Exception e){ 
   
            System.out.println("很抱歉!读取失败!");
            e.printStackTrace();
        }finally { 
   
            //5.关流
            try { 
   
                in.close();
            } catch (IOException e) { 
   
                e.printStackTrace();
            }
        }
    }

    private static void method1() { 
   
        //1.创建一个在本方法中都生效的局部变量,并给变量初始化
        OutputStreamWriter out = null;
        //2.由于代码可能会产生IO异常,所以需要完成try-catch-finally结构
        try{ 
   
            //3.创建流对象
            out = new OutputStreamWriter(
                    new FileOutputStream("1.txt"),"utf-8");
                    //new FileOutputStream("1.txt"),"iso-8859-1");
                    //new FileOutputStream("1.txt"),"gbk");
            //4.使用流对象写出数据
            out.write("海绵宝宝与派大星");
            System.out.println("执行成功!");
        }catch (Exception e){ 
   
            System.out.println("执行失败!");
            e.printStackTrace();
        }finally { 
   
            //5.关流
            try { 
   
                out.close();
            } catch (IOException e) { 
   
                e.printStackTrace();
            }
        }
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194817.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月29日 下午2:15
下一篇 2025年10月29日 下午2:43


相关推荐

  • 大数据建设背景介绍

    大数据建设背景介绍随着移动互联网、物联网和云计算技术的迅速发展,开启了移动云时代的序幕,大数据(BigData)也越来越吸引人们的视线。正如1982年世界预测大师、未来学家约翰.奈斯比特(John.Naisbitt)在他的著作中所提到的:“我们现在大量生产信息,正如过去我们大量生产汽车一样”、“人类正被信息淹没,却饥渴知识”,等等诸的预言均在当下得到了充分的证实,这也恰恰说明,世界正处一个信息爆照的时代。Internet的出现缩短了人与人、人与世界之间的距离,整个世界连成一个“地球村”,人们通过网络无障碍交流交换信息和

    2022年5月30日
    49
  • 完全二叉树和二叉树性质「建议收藏」

    完全二叉树和二叉树性质「建议收藏」一.完全二叉树特点:1.叶子节点只能出现在最下面2层2.层序遍历时连续的二.二叉树性质第i层,最多有2的(i-1)次方个节点深度为k,最多有2的k次方-1个结点叶子节点为n0,度为2的结点为n2,则n0=n2+1n个节点的完全二叉树,深度为log[(2,n)+1]取下地板n个节点的完全二叉树,按层序编号,任一结点ia.i=1,则结点为根,若i&…

    2022年5月23日
    53
  • qt几种常见的打包安装程序工具

    qt几种常见的打包安装程序工具1 setupfactory 是一个强大的安装程序制作工具 提供了安装制作向导界面 即使你对安装制作不了解 也可以生成专业性质的安装程序 可建立快捷方式 也可直接在 Windows 系统的注册表加入内容 还能在 Win ini 和 System ini 内加入设定值 更可以建立反安装选项等等 它内附的向导可以一步步的带领您做出漂亮又专业的安装程序 感谢其他博客给出

    2026年3月19日
    1
  • being搜索引擎用户体验[通俗易懂]

    being搜索引擎用户体验[通俗易懂]being的搜索引擎带有的自动区别全英(汉)来呈现不同内容的结果,使用户能更快找到需要的结果。它的取词翻译可以很快的使用户得到想要的讯息。但是它的取词翻译有很多地方有一些多余,如myusou

    2022年7月1日
    53
  • centos7卸载MySQL_centos7下安装mysql

    centos7卸载MySQL_centos7下安装mysql**centos7下mysql卸载**1.关闭mysql服务servicemysqldstop2.删除mysql目录whereismysql——找到mysql目录rm-rfxxxxx——xxxxx代表mysql目录3.删除mysql相关配置文件my.cnf4.后记此方法针对于网络状况不好的服务器,不是yum或者rpm方法安装mysql的卸载同样有效…

    2022年9月30日
    4
  • char转换为数字_char字符转int

    char转换为数字_char字符转int刷题遇到一个考点是char型数字转int进行计算的问题。一看就会,一做就错,显然是在这里的认识薄弱了。将一番搜索的结果记录下来,以备再忘来打脸。char的定义参考:Java基本数据类型之char。首先,char跟int这两种类型可以直接互转:charch1=’a’;inti=ch1;charch2=(char)i;那么面对charin=‘2’需要转成int做计算,那么很…

    2026年4月15日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号