从CSV读取数据

时间:2017-10-11 00:11:01

标签: java apache csv

我试图读取CSV文件。但是在我的第一张唱片的第一个字段中,我在字符串之前得到了一个空格。有人可以帮帮我吗?

        FileInputStream fis = new FileInputStream(fx);
        Reader reader = new InputStreamReader(fis, ENCODING)) {
        final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withDelimiter(DELIMITER));

        for (CSVRecord record : parser) {
            String cidade = record.get(0);

我文件的第一行是" FUNCHAL; 1261; 9000; C; D;"我得到了" FUNCHAL&#34 ;. 第一行就好了。

1 个答案:

答案 0 :(得分:2)

非常确定您正在阅读带有BOM标记的文件编码,可能是带有BOM的UTF-8。 Java并没有剥离标记,并且调用function largestEach(arr) { return arr.map(a => a.reduce((a, b) => Math.max(a, b))); } 也没有帮助。

尝试使用正确处理BOM标记的univocity-parsers进行解析,并且还比commons-csv 3 times faster

function largestEach(arr) {
   return arr.map((a)=> Math.max.apply(null, a))
}

希望有所帮助

Abracos

免责声明:我是这个图书馆的作者。它的开源和免费(Apache 2.0许可证)