场景:
将UTF-8编码的模版文件读入内存,然后转换后存储为html文件。
注意点:
utf-8编码的文件开头有3个附加字节:0xEF 0xBB 0xBF
unicode编码的文件开头有2个附加字节:0xFF 0xFE (little endian),或者0xFE 0xFF(big endian)
ANSI编码则没有附加字节
如果读写不当, 可能得不到预期结果(html会显示为乱码)
读示例:
Reader streamReader = new InputStreamReader(new FileInputStream(utf8File), "UTF-8");
Reader reader = new BufferedReader(streamReader);
String line = null;
StringBuilder text = new StringBuilder();
while ((line = reader.readLine()) != null) {
text.append(line);
}
reader.close();
return text.toString();
}
写示例:
String outputFile = "c://utf8.htm";
Writer writer = new PrintWriter(
new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"));
template = template.replace("$title$", "UTF-8 read and write");
writer.write(template);
writer.close();