我有一个 UTF-8 文件(它是一个 csv)。
我需要逐行读取这个文件做一些替换,然后逐行写入另一个文件。
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileFix), "ASCII")
);
bw.write(""); //clean current file
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file),"UTF-8")
);
String line;
while ((line = br.readLine()) != null) {
line = line.replace(";", ",");
bw.append(line + "\n");
}
就那么简单。
问题是输出文件(fileFix)是 UTF-8,我认为它有 BOM 字符。
如何在没有 BOM 的情况下将文件编写为纯 ANSI?
使用软件(weka)读取文件时遇到的错误
该文件的第一行:
考虑一下记事本++告诉我字符集是UTF-8。如果我尝试将此文件转换为纯 ASCII(使用 Windows 记事本),则字符消失
解决方案
当您在第一行运行时:
line = line.substring(1);
删除任何 BOM 字符。