在Java中写入文件时,如果遇到中文乱码问题,通常是因为编码设置不正确导致的,以下是一些解决方法:
1、使用UTF8编码
在创建FileOutputStream
对象时,指定编码为UTF8
,示例代码如下:
import java.io.FileOutputStream; import java.io.IOException; public class WriteToFile { public static void main(String[] args) { String content = "你好,世界!"; try (FileOutputStream fos = new FileOutputStream("output.txt", true)) { fos.write(content.getBytes("UTF8")); } catch (IOException e) { e.printStackTrace(); } } }
2、使用OutputStreamWriter
和BufferedWriter
使用OutputStreamWriter
将字节流转换为字符流,并指定编码为UTF8
,然后使用BufferedWriter
进行缓冲写入,示例代码如下:
import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class WriteToFile { public static void main(String[] args) { String content = "你好,世界!"; try (FileOutputStream fos = new FileOutputStream("output.txt", true); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF8"); BufferedWriter bw = new BufferedWriter(osw)) { bw.write(content); bw.newLine(); } catch (IOException e) { e.printStackTrace(); } } }
3、使用PrintWriter
使用PrintWriter
的构造函数指定编码为UTF8
,示例代码如下:
import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; public class WriteToFile { public static void main(String[] args) { String content = "你好,世界!"; try (FileOutputStream fos = new FileOutputStream("output.txt", true); PrintWriter pw = new PrintWriter(fos, "UTF8")) { pw.print(content); pw.println(); } catch (IOException e) { e.printStackTrace(); } } }
以上三种方法都可以解决Java写入文件中文乱码的问题。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/646024.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复