首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA读写资料,中文乱码 【转】

2012-09-22 
JAVA读写文件,中文乱码 【转】最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签

JAVA读写文件,中文乱码 【转】

最近在做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));

都不行。

热点排行