返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java中FileWriter写入中文乱码
  • 825
分享到

Java中FileWriter写入中文乱码

java开发语言 2023-09-11 12:09:37 825人浏览 泡泡鱼
摘要

问题来源:                 Java中FileWriter写入中文乱码通常是由于“系统向目标文件写入时所使用的编码与目标文件自身的编码不同” 解决办法:         首先,确保使用jdk11及以上         其次,

问题来源:        

        Java中FileWriter写入中文乱码通常是由于“系统向目标文件写入时所使用的编码与目标文件自身的编码不同”

解决办法:

        首先,确保使用jdk11及以上

        其次,在实例化FileWriter的时候,第二个参数使用指定的文件编码,如UTF-8

        最后,成功运行。

示例代码:      

package Java.WRTest;import java.io.FileWriter;//注意1import java.NIO.charset.Charset;public class FileWriterTest {    public static void main(String[] args) {        FileWriter writer = null;        try{            String file = "E:/CodeAll/Java/iOStreamTest/test.txt";            //注意2            writer = new FileWriter(file, Charset.forName("UTF-8"));            writer.write("你好 世界!!");        }catch(Exception e) {            e.printStackTrace();        } finally {            try {                if(writer != null) {                    writer.close();                }            }catch(Exception e) {                e.printStackTrace();            }        }    }}

 代码解释:

        在“注意2”中,我们通过FileWriter(String fileName, Charset charset)的构造方法指定了字符编码,以对应我们目标文件的编码(通常使用UTF-8)。

        在“注意1”中,我们导入了Charset所需的类,使之正常使用。

拓展:

        我们还可以通过如下代码以替换Charset.forName("UTF-8")使用,

//需要的包import java.nio.charset.StandardCharsets;//可替换StandardCharsets.UTF_8

        在JDK11及以上中,可以通过构造方法指定编码格式了。

        JDK20中FileWriter构造方法如图1所示, JDK11中FileWriter构造方法如图2所示, JDK8中FileWriter构造方法如图3所示。

图1 

图2

图3

运行环境:

        本机环境是运行于vscode中,插件有如下:

 

 如果在VsCode中使用新版JDK我们需要执行下述操作步骤:

        1,文件-首选项-设置

        2,输入javahome

        3,找到下图所示位置

        4,进入指定文件后键入我49行中的内容,目录替换为你的新JDK文件夹位置

        5,保存并重启,检查是否正常使用

        注:java.home已淘汰,现已替换为:java.jdt.ls.java.home

来源地址:https://blog.csdn.net/ax_CSDN/article/details/130912047

--结束END--

本文标题: Java中FileWriter写入中文乱码

本文链接: https://www.lsjlt.com/news/403086.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作