我正在用Java读取csv文件,在其中添加新信息列,并将其重新导出到CSV文件。 我在以UTF-8格式读取CSV文件时遇到了问题。 我逐行读取并将其存储在StringBuilder
中,但是当我打印该行时,我可以看到我正在读取的信息不是UTF-8而是ANSI。 我使用了UTF和printstream的System.out.print
,但信息仍然以ANSI格式显示。 这是我的代码:
BufferedReader br;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(
"./users.csv"), "UTF8"));
String line;
while ((line = br.readLine()) != null) {
if (line.contains("none@none.com")) {
continue;
}
if (!line.contains("@") && !line.contains("FirstName")) {
continue;
}
PrintStream ps = new PrintStream(System.out, true, "UTF-8");
ps.print(line + "\n");
sbusers.append(line);
sbusers.append("\n");
sbusers2.append(line);
sbusers2.append(",");
}
br.close();
} catch (IOException e) {
System.out.println("Failed to read users file.");
} finally {
}
它会打印出类似于“Professor -P's”的信息。由于读取不正确,新文件的输出也以ANSI格式导出。