博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA读写文件,如何避免中文乱码
阅读量:3589 次
发布时间:2019-05-20

本文共 1501 字,大约阅读时间需要 5 分钟。

最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签写到指定的文件中。无论是读写,都遇到了中文乱码问题。试过多种方法,发现下面一种可以避免中文乱码。(无论读取还是写入一定要进行编码转换。)
1、JAVA读取文件,避免中文乱码。
/**
* 读取文件内容
*
* @param filePathAndName
* String 如 c:\\1.txt 绝对路径
* @return boolean
*/
public static String readFile(String filePathAndName) {
String fileContent = "";
try {
File f = new File(filePathAndName);
if(f.isFile()&&f.exists()){
InputStreamReader read = new InputStreamReader(new FileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
fileContent += line;
}
read.close();
}
} catch (Exception e) {
System.out.println("读取文件内容操作出错");
e.printStackTrace();
}
return fileContent;
}
2、JAVA写入文件,避免中文乱码。
public static void writeFile(String filePathAndName, String fileContent) {
try {
File f = new File(filePathAndName);
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
//PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
//PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
writer.write(fileContent);
writer.close();
} catch (Exception e) {
System.out.println("写文件内容操作出错");
e.printStackTrace();
}
}
我试过写入的时候用
1、PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filePathAndName)));
2、PrintWriter writer = new PrintWriter(new FileWriter(filePathAndName));
都不行。
以上代码经过运行可以避免中文乱码,关键是要编码转换。

转载地址:http://umswn.baihongyu.com/

你可能感兴趣的文章
MyBatis 一级缓存在分布式下的坑你知道吗?
查看>>
2020年2月JVM面试的30个知识点
查看>>
在家办公7天整理Spring Cloud知识点大全
查看>>
看看这些Java代码开发规范吧!你好,我好,大家好!
查看>>
2020年3月,47个经典Spring面试题详解(附带答案)
查看>>
python实现Mapreduce的wordcount
查看>>
Linux字符设备驱动编(步骤,框架(面向对象),分层)
查看>>
linux高级字符驱动之输入子系统
查看>>
代理与反射
查看>>
面向对象
查看>>
训练并导出tensorflow Lite模型中的一些问题 及解决办法
查看>>
QQ小程序百度网盘中的文件保存和下载
查看>>
34个数据库常见面试题讲解
查看>>
什么是存储过程
查看>>
面试题4
查看>>
IOCP模型与网络编程
查看>>
CString的工作原理介绍- -
查看>>
Visual Studio中的文件类型(sln vcproj suo user ncb)
查看>>
为什么要限制栈的大小?
查看>>
windows10中Python3.7.4安装pygame模块
查看>>