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


相关推荐

  • 如何利用IDM加速下载百度网盘大文件

    如何利用IDM加速下载百度网盘大文件如何利用IDM加速下载百度网盘大文件(以下内容来自扩展迷EXTFANS,侵权可删)一、开发背景二、功能介绍三、如何下载百度网盘大文件1、安装IDM软件2、配置IDM软件3、安装油猴脚本4、下载百度网盘文件一、开发背景谷歌浏览器纵使有许多优点,但下载管理这方面依然是其劣势。Chrome的原生下载管理功能,谁用了大概都要说一句“鸡肋”。不仅入口需要打开二级菜单,而且连最基本的一些执行操作都不支持。每当在浏览网页时,我们经常看到一些有趣的视频想要下载下来。这时候,就只有通过视频嗅探工具来实现。而在面对百度网盘

    2022年6月29日
    26
  • STL算法——概述及算法概览[通俗易懂]

    STL算法——概述及算法概览[通俗易懂]

    2022年8月18日
    5
  • Java BigDecimal详解

    Java BigDecimal详解1.引言       借用《EffactiveJava》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。 2.BigD

    2022年6月7日
    31
  • pycharm汉化版安装[通俗易懂]

    pycharm汉化版安装[通俗易懂]pycharm汉化版安装想要学好一门语言一款好用的编辑软件非常的重要,最近公司要做一款智能机器人的客服聊天系统,用到python刚开始使用eclipse编辑,发现效果不太理想,毕竟不是专业化软件。好了废话少说开启pycharm的安装之旅吧!一、首先呢当然是下载,不过呢我已经准备好了!赶快通过百度云下载吧,链接:百度云链接密码:32g6二、下载完成解压到自己想保存

    2022年5月25日
    45
  • 【转载】回调函数(callback)是什么?

    【转载】回调函数(callback)是什么?

    2021年11月18日
    62
  • Rpc接口测试_Python接口测试

    Rpc接口测试_Python接口测试本发明涉及RPC(RemoteProcedureCallProtocol,远程过程调用协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)接口测试领域,具体涉及一种RPC接口测试方法及系统。背景技术:接口测试(对系统组件间接口进行测试)主要用于检测外部系统与系统(包括各个子系统)之间的交互点,接口测试重点为检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系…

    2022年10月13日
    0

发表回复

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

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