跟着课程学习IO,小程序内容是将文件按行读出,然后按每行的数字进行排序写入另一个文件,最后写入文件打开后却是乱码的。

源文件是这样的:

出现乱码原因:
使用的源文件编码格式原来是ANSI编码,而程序读取与写入使用的却是utf8编码,所以产生了乱码。
小程序代码:
import java.io.*;
import java.util.HashMap;
public class DemoPaixu {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("E:\\JavaFileTest\\paixu\\first.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\JavaFileTest\\paixu\\secend.txt"));
HashMap<String,String> filemap = new HashMap<>();
String line;
while ((line = br.readLine()) != null) {
String[] arr = line.split("\\.");
filemap.put(arr[0],arr[1]);
}
for (String key : filemap.keySet()) {
String value = filemap.get(key);
String aline = key + "." + value;
bw.write(aline);
bw.newLine();
}
bw.close();
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
本文探讨了Java程序中,由于源文件使用ANSI编码而程序采用UTF-8导致的文件读写乱码现象。通过实例代码展示了如何识别并解决编码不匹配问题,确保文件正确排序和写入。

2436

被折叠的 条评论
为什么被折叠?



