跟着课程学习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();
}
}
}