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();
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路「建议收藏」

    程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路「建议收藏」逆袭从来不是轻而易举

  • ICMP 协议「建议收藏」

    ICMP 协议「建议收藏」一、什么是ICMP协议?ICMP(InternetControlMessageProtocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP使用IP的基本支持,就像它是一个更高级别…

    2022年10月23日
  • xman的思维导图快捷键_macz技巧分享:思维导图XMind快捷键汇总「建议收藏」

    xman的思维导图快捷键_macz技巧分享:思维导图XMind快捷键汇总「建议收藏」在思维导图XMind中,快捷键是可以大大提高绘图效率的存在。掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制。还在等什么?感兴趣的朋友,下面就和小编一起来看看吧!在XMind:ZEN中,主要的快捷键类型有四种,分别是:文件(File)、插入(Insert)、编辑(Edit)和查看(View)。一、文件文件快捷键,指的是对当前文件整体的一个操作,常见的功能有…

  • win10系统用激活码激活,用dos命令来激活,只能激活半年时间,暂时没找到永久的。

    win10系统用激活码激活,用dos命令来激活,只能激活半年时间,暂时没找到永久的。自己之前用激活工具激活的,激活时间好像是180天,即将到期了,于是在网上百度各种永久激活方法,参照别人的方法,发现把自己的激活状态由激活即将到期变为通知模式,瞬间一脸懵逼,于是找啊找,终于找到了这种方式,亲测可行。(1)首先查看自己系统的激活状态;快捷键win+r输入命令:slmgr.vbs-xpr; 随后弹出窗口显示2018/9/8过期。 (2)然后以管理员模式打开命令提示符窗…

  • java oracle分页查询语句_oracle 分页语句

    java oracle分页查询语句_oracle 分页语句通过Debug调试,发现第一页查询到的数据没有问题,第二页时,查不到数据!第一页时,控制台打印的sql语句:SELECTOBJ_NAME,OBJ_ATTRIBUTE_NAME,ATTRIBUTE_TYPE,DES,STS,PRIORITYFROM(SELECTm.*,rownumrow_idFROM(SELECTOBJ_NAME,OBJ_ATTRIBUTE_NAME,ATT…

  • Nexus3功能介绍

    Nexus3功能介绍1、BrowseServerContent1.1Search这个就是类似Maven仓库上的搜索功能,就是从私服上查找是否有哪些包。注意:在Search这级是支持模糊搜索的1.2Browse1.3Upload顾名思义就是上传jar包到私服中,可以选择其中一个hosted仓库。注意:通过页面直接上传的方式只是上传了jar包,若这个jar通过Mave…

发表回复

您的电子邮箱地址不会被公开。

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