在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写入文件中文乱码的问题。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。