利用InputStreamReader和OutputStreamWriter进行文件转码

微机接口技术:总线带宽、端口译码、8254/8259A/8255A 微机原理与接口技术是理解CPU与外设协同工作的基础,总线带宽、端口地址译码、中断定时与并行/串行通信构成核心链路。总线宽度与频率决定理论带宽,地址译码把端口地址映射为片选信号,8254定时器依靠计数初值实现精确定时,8259A中断控制器管理优先级与中断向量,8255A提供并行I/O握手,串行通信通过波特率与分频系数保证收发同步。把这些寄存器操作、时序计算和硬件连线统一起来,可减少实验箱灯不亮、串口乱码、中断不响应等问题。面向课程设计、期末复试、ISA/PCI实验卡调试和嵌入式底层开发,围绕总线、译码、定时中 阅读详情

在这里插入图片描述
话不多说,代码先行!

public class BufferedReaderTestClient1 {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("Test1"), "GB2312"));
             BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Test1ToUTF8"), "UTF-8"))) {
            char[] container = new char[64];
            int len;
            while ((len = reader.read(container)) != -1) {
                writer.write(container, 0, len);
            }
        } catch (Exception exception) {
        }
    }
}

我们在"Test1"文件中写入如下字符,并以GB2312的格式进行保存:

写入BufferedWriter字符串1
写入BufferedWriter字符串2
写入BufferedWriter字符串3

以UTF-8编码格式打开

д��BufferedWriter�ַ���1
д��BufferedWriter�ַ���2
д��BufferedWriter�ַ���3

可以看出,英文和数字没有乱码,中文乱码了!我们可以猜测,大概是英文和数字在编码表中位置基本都是一样的,而中文就不一样了,因此就乱码了。

OK,猜测完,我们运行一下代码!

在项目目录下,生成了一个文件"Test1ToUTF8",使用UTF-8格式打开:

写入BufferedWriter字符串1
写入BufferedWriter字符串2
写入BufferedWriter字符串3

那用GB2312编码格式打开呢?

鍐欏叆BufferedWriter瀛楃涓?
鍐欏叆BufferedWriter瀛楃涓?
鍐欏叆BufferedWriter瀛楃涓?

似乎,又不认识了哈…


上方的代码,其实就是完成了编码的格式的转换。

原理,很简单。程序用"GB2312“格式打开文件”Test1",因为文件就是"GB2312“格式的,所以可以正常读取里面的字符,将读取到的字符再用”UTF-8“编码格式写入另外一个文件”Test1ToUTF8",此时,文件"Test1ToUTF8“的格式就是”UTF-8"编码格式。所以,就完成了编码的格式转换!

总之,文件以什么格式编码写入的,就以什么编码格式读取,这样才不会乱码,因为编码的规则是一样的嘛!否则,可能会出现乱码!

2.6 SST的核心性能指标体系 本文构建了固态变压器(SST)的核心性能指标体系,涵盖电气性能、可靠性、经济性和环境适配性四大类指标。电气性能指标包括运行效率(≥97%)、功率密度(≥900kVA/m³)、谐波畸变率(≤3%)等关键参数;可靠性指标设定MTBF≥43800h、年均故障率≤1.2次/年等标准;经济性指标对比分析了初始购置成本(45-55万元)和全生命周期成本(48-55万元);环境适配性指标则明确了温度、海拔等工况要求。该体系采用量化公式和国标限值,为SST的性能测试、选型和优化提供了统一标准。 阅读详情

相关推荐

Surface Pro 4/5/6/7保姆级黑苹果安装:从Windows分区到OC引导配置全流程(含EFI文件替换避坑)

本文详细介绍了在Surface Pro 4/5/6/7上安装黑苹果的全流程,包括Windows分区、OC引导配置和EFI文件替换等关键步骤。通过实战经验分享,帮助用户避开常见陷阱,实现Windows与macOS双系统完美共存,特别适合对黑苹果安装感兴趣的Surface Pro用户。

weixin_30300225的博客 1360

java String输出GB2312编码格式到文件

【代码】java String输出GB2312编码格式到文件。

Start_From_Scratch的博客 1034

Wireshark时间分析实战:精准调试网络延迟与时间同步问题

本文深入探讨了Wireshark在网络延迟与时间同步问题分析中的核心应用。通过实战案例,详细讲解了如何设置时间显示格式、利用时间参考点量化关键路径延迟,以及运用时间平移功能校正错位时间轴。掌握这些时间分析技巧,能帮助网络工程师精准定位隐藏于数据包时序中的性能瓶颈与故障根源。

weixin_29290963的博客 262

编码转换流OutputStreamWrite与InputStreamReader

1.编码转换流(InputStreamReaderWriter)主要进行编码的转换,用来、解决字符流读写乱码的问题2.工具API学习OutputStreamWriter(OutputStream out)把传入的字节流转换成字符流OutputStreamWriter(OutputStream,String charsetName)把Unicode转成其他编码输出InputStreamReader(InputStream in)把传入的字节流转成字符流。

weixin_54689506的博客 370

Coze+剪映小助手实战:5分钟搞定视频草稿创建工作流(附常见错误排查)

本文详细介绍了如何利用Coze平台与剪映小助手,通过create_draft接口快速搭建自动化视频草稿创建工作流。文章从核心价值、零基础搭建步骤、运行验证到深度错误排查,手把手教你5分钟内实现视频项目参数预设的标准化与自动化,显著提升短视频创作与团队协作效率。

oil88的博客 549

通达信主力检测利器

主力轨迹:100*EMA(EMA(MTM,N1),N1)/EMA(EMA(ABS(MTM),N1),N1),COLORWHITE;主力拉高:IF(VAR51<REF(VAR51,1),VAR51,0),COLORYELLOW,NODRAW;洗盘:IF(VAR5<REF(VAR5,1),VAR5,0),COLOR000079,NODRAW;主力进场:IF(VAR5>REF(VAR5,1),VAR5,0),COLORRED,NODRAW;MAZL:MA(主力轨迹,N2),COLORYELLOW;

zhibiaogong的博客 7458

Java中常出现的乱码问题总结

编码也就是计算机能识别的数据与人类友好的数据的翻译过程。计算机的基本存储单位是byte,人类友好语言(汉语英语等各种语言)用char存储吧。那么编码其实就可以理解为char-byte、byte-char这样的过程。这样char-byte之间的翻译就需要一个标准了,可惜的是每个国家根据自己国家的母语设计出了不同的翻译标准,这边导致不同标准之间的翻译过程出现不统一,自然乱码问题就出现了。 常见的

吧啦吧啦F 2767

AMD Ryzen AI Max+ 395四机集群实战:开源工具链与大模型推理优化全解析

本文详细解析了基于AMD Ryzen AI Max+ 395处理器的四机集群搭建与优化实践,涵盖硬件配置、开源工具链评测及大模型推理优化技巧。通过深度测试,揭示了集群在AI推理中的性能瓶颈与解决方案,特别适合需要扩展显存的大模型实验场景。文章还提供了成本效益分析,帮助开发者做出更明智的选型决策。

weixin_29041767的博客 1519

服务器文件编码格式发生变化,使用BufferedReader和BufferedWriter转换文件编码格式遇到的坑~...

最近一个省的导出功能遇到了一个奇葩的BUG,自个折腾了很久很无助,先记录吧~启初还以为是部署的代码版本过久导致的,于是又重新去部署一份最新代码还是无法解决。因为导出功能是先从gp数据库上copy出 UTF-8的csv文件,基本上很快生成。可是到了需要到数据转换成GBK编码格式时候就出问题了。BUG是这样的,开始导出并且转换小数据量呢基本上莫得问题,可到了50W条数据以后就变成假死状态。起初我看代码...

weixin_30258621的博客 932

视频编解码——视频编解码器工作原理

目录什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器时评编码器的历史 什么是视频编解码器 简单来说就是用于压缩或解压数字视频的软件或硬件 编码是信息从一种形式或格式转换为另一种形式的过程,解码是编码的反向。 适用于视频 编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式(视频如h.264,h.265,m-jpeg等)。 解码是编码的反向过程。应用中,一般是将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。 为什么需要视屏编解码器 需要在有限的带宽或存储空间

路人coder 1万+

15张图详解三方支付:总架构、5大核心业务处理流程、备付金管理

用户可以将银行卡与零钱账户绑定,建立银行结算账户与支付账户的连接,然后将银行账户资金充值到零钱账户中,或将零钱账号中的余额提现至绑定的银行卡。因此,用户在A支付机构的零钱一般只能支付给A支付机构的商户,如支付宝的零钱不能支付给微信的商户。这五大业务的协同运作,使得第三方支付机构这一庞大的支付服务平台能够为市场提供卓越的支付能力。到了结算时间,网联会向备付金集中存管账户提交结算指令,在第三方支付机构备付金集中存管账户内完成最终的结算,并将结算结果及额度变动情况通知给第三方支付机构,具体流程如图13所示。

银行信息系统应用架构详解 1044

StreamWrite写ASCII文本文件时,中文变成问号解决

StreamWriter sw = new StreamWriter("c:\\x.txt", false,System.Text.Encoding.ASCII); 以上写出来的文本文件,中文将变成一个问号。 解决方式是把第一句改成: StreamWriter sw = new StreamWriter("c:\\x.txt", false,System.Text.Encoding.Default); 注:在写逗号分隔的文本文件csv格式时,必须要是ASCII文件才能正确读取,而默认StreamWrit.

weixin_44400515的博客 759

头歌OpenGauss数据库-G.视图的使用

OpenGauss数据库-G.视图的使用

python一生之敌的博客 1383

java字符转码

转码流程:文件(gbk)-->解码-->编码--->文件(utf-8)   注:如有问题请留言   下面具体的实例   方法一:java.lang.String   Java代码   用于解码的构造器:   String(byte[] bytes, int offset, int length, String charsetNam

dong_pongkk999的专栏 443

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IO数据流与转码

from:http://www.oreilly.com.tw/sleepless/java_big5_2.htm I/O 轉碼 Java 現行的 IO 一律使用 Stream 的方式,相關的類別都放在 java.io 中。輸出 binary 的資料使用 OutputStream 的子類別,輸入 bi...

weixin_30449239的博客 146

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java进阶(四十)IO流8:转换流

一、转换流的概述 转换流也属于处理流的一种。 转换流提供了在字节流和字符流之间的转换。 Java API中提供了2个转换流: InputStreamReader:InputStream——> Reader OutputStreamWriter:Writer ——> OutputStream 字节流中的数据都是字符时,转成字符流操作更高效。 很多时候我们使用转换流来处理文件乱码问题。实现编码和解码的功能。 ...

qq_33491651的博客 239

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java 字符串转码

正文 Java中字符串转码,根据实际运用的环境有以下三种方式 使用Java.lang.String这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下: String s = "清山"; byte[] b = s.getBytes("utf-8");//编码 String sa = new String(b, "gb2312");//解码:用什么字符集编码就用...

Be yourself. 2万+

hadoop文件IO

hadoopIO相关

司念 1011

J2SE学习笔记:IO转换流与包装模式

package cn.itcast.mldnio; /** * 将一个 GBK编码的txt文档另存为UTF-8编码文档 * InputStreamReader 读的时候一定要按照文章原来的编码,不然会乱码 * OutputStreamWriter 可以将文档重新编码后写出 * InputSteamReader与OutputStreamWriter相互配合,可以完成文档的转码操作 *

小崔的专栏 614

转换流,Properties 集合

转换流: OutputStreamWriter 写入转码 字符流通向字节流的桥梁,可使用指定的字符编码表,将要写入流中的字符编码成字节。 格式: //明确目的地 FileOutputStream fos=new FileOutputStream("D:\\text\\c.txt",true); // OutputStreamWriter osw=new Ou...

weixin_33726943的博客 104

【JAVA入门】Day42 - 转换流

在 JDK11 以后,这种转码方式被替代了,替代它的是 FileReader() 构造新的参数—— Charset charset。【使用例1】把一个 GBK 的文件中的中文读取到内存中,不能出现乱码。转换流中的输入流叫做 InputStreamReader,它可以把字节流转换为字符流。转换流的输出流叫做 OutputStreamWriter,它可以把字符流转换成字节流。【使用例3】将本地文件中的 GBK 文件,转码成 UTF-8。【使用例2】利用转换流按照指定的字符编码写出数据。

oo00Z00oo的博客 480

乱码解决(二)——文件转码

上一篇文章我们已经介绍了解决文件乱码的一种方式——修改Eclipse设置,但修改Eclipse设置并未改变文件编码格式,有时候我们需要统一文件编码格式,这时候就需要用到第二种解决文件乱码的方式——文件转码。下面介绍两种方式实现文件转码。 一、Eclipse插件实现文件转码 这个需要我们下载一个Eclipse文件转码插件com.lifesting.tool.encoding_1.0.0.ja...

LIAO_7053的博客 3766

Java字符转码

原资源地址:http://blog.youkuaiyun.com/zhengqiqiqinqin/article/details/12621201 方法一:java.lang.String   Java代码   用于解码的构造器:   String(byte[] bytes, int offset, int length, String charsetName)   

Jonas_peng的博客 573

java字符转码:三种方法

原文地址:http://thetopofqingshan.iteye.com/blog/1502731 java字符转码:三种方法 转码成功的前提:解码后无乱码 转码流程:文件(gbk)-->解码-->编码--->文件(utf-8)   注:如有问题请留言   下面具体的实例   方法一:java.lang.String   Java代

zhengqiqiqinqin的专栏 12万+

Java基础-IO流(转换流)

输入转换流InputStreamReader、输出转换流OutputStreamWriter基本使用

weixin_50369190的博客 256
上一篇: 聊聊BufferedWriter和BufferedReader的二三事
下一篇: LineNumberReader的简单介绍与使用
盖了帽
博客等级 码龄8年 17粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值