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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 求素数

    求素数求素数

    2022年4月24日
    48
  • win10下Miracast无线投屏使用教程及异常解决方案(超详细)[通俗易懂]

    win10下Miracast无线投屏使用教程及异常解决方案(超详细)[通俗易懂]文章目录一、什么是Miracast?二、主流的无线投屏技术有哪些特点?三、如何查看自己的win10电脑是否支持Miracast无线投屏功能?四、win10电脑如何使用Miracast无线投屏功能?一、什么是Miracast?Miracast是由Wi-Fi联盟于2012年所制定,以Wi-Fi直连(Wi-FiDirect)为基础的无线显示标准。支持此标准的3C设备(如智能手机、电视、投影、电脑等…

    2022年6月4日
    177
  • maven环境变量配置详细步骤(win10)

    maven环境变量配置详细步骤(win10)一、前言最近更新了系统,maven也想了想也需要装个新版本了,去下载了新版本,记录下maven的安装配置,初学小伙伴可以看看。安装前确认已经安装好了JDK,没有安装或下载的小伙伴可以参考我另外一篇文章原创jdk1.8下载与安装教程(win10),其它版本类似。安文件大家可以自己去官网下载,也可以直接在下面到我的网盘下载,官网向来下载速度都比较慢。目前版本是3.6.3版本,有新版本我也…

    2022年7月24日
    11
  • 十天学会php第五天

    十天学会php第五天

    2022年1月11日
    41
  • 深入了解mysql它BDB系列(1)—BDB基础知识

    深入了解mysql它BDB系列(1)—BDB基础知识

    2021年12月30日
    22
  • 接口测试用例设计方法有哪些_接口自动化测试用例设计

    接口测试用例设计方法有哪些_接口自动化测试用例设计本篇的目的是简明的完成一份接口测试用例设计的撰写,维护的文档,需要大家共同努力,不断完善,存在的不足以及日后在实际使用中暴露出来的问题,希望大家及时出,以便更新文档。一、用例设计过程:用例不是一次完成的,书写测试用例本身和完善代码一样,也是一个循序渐进的过程。首先,必须熟读需求说明书和接口设计文档,了解每个接口具体的使用场景,明白软件的性能指标。其次,设计接口测试用例:开始在编码阶段,测试人员根据需求说明书和接口设计文档设计接口测试用例。然后,codereview:开发完成编码后,在时间充裕的

    2022年9月13日
    2

发表回复

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

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