【发布时间】:2015-08-10 09:07:35
【问题描述】:
public static void main(String[] args) throws IOException {
String dataRow;
BufferedReader CSVFile =
new BufferedReader(new FileReader("test.csv"));
while ((dataRow = CSVFile.readLine()) != null) {
System.out.println(dataRow.split(";")[0]);
}
// Close the file once all data has been read.
CSVFile.close();
// End the printout with a blank line.
System.out.println("Done");
}
我尝试在普通文本视图中读取的 CSV 文件
ID;Numbers
12;234
343;233
我能打印的只是空格,没有字符串。
输出
1. ��I
2.
3.
4.
Done
文件编码只有“UNICODE”
如何在 java 中读取 Unicode 文件。 我是否必须在 FileReader java 类构造器中设置一个参数来设置文件的编码类型?
请多多指教。
【问题讨论】:
-
可能 CSV 文件没有以您的本地机器默认编码进行编码?
-
@Ricardo 我创建了一个可以正确读取的新文件。我不明白我试图阅读的上一个文件有什么问题。
-
我有 100 个 csv 文件,每个文件有 10000 行。但是所有文件都存在相同的问题,即即使不拆分(直接显示行)也无法读取。需要某种方法来读取 CSV 文件并处理其中的数据。
-
行分隔符可能与系统对 \n 的期望不同。例如windows和linux系统不同。我建议手动解析文件,使用正确的行分隔符手动分割每一行:stackoverflow.com/questions/426397/… 如果你想用不同的编码处理你的文件,你可以使用 SublimeText 的'open with encoding...'选项。