问题描述
我有一个多行列表CSV,我想拉一条线,并从Java中的那一行中拉出每个元素。 之后,我要转到下一行。 每行有不同数量的列,那么如何定制代码呢?
我至少正在寻找一些指导,找不到其他类似的东西。
1楼
如果要读取或写入csv文件,使用apache的Commons CSV库可以省去繁重的工作。 可以提供帮助。 一个示例(也在该站点上)可能是:
Reader in = new FileReader("path/to/file.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record : records) {
String lastName = record.get("Last Name");
String firstName = record.get("First Name");
}
2楼
从您的描述看来,您的文件似乎没有每一列的标题。 使用为您完成此操作-它比Commons CSV快3倍,并且具有许多功能。
// you have many configuration options here - check the tutorial. By default values are trimmed and blank lines skipped.
CsvParserSettings settings = new CsvParserSettings();
CsvParser parser = new CsvParser(settings);
List<String[]> allRows = parser.parseAll(new FileReader(new File("/path/to/your/file.csv")));
披露:我是这个图书馆的作者。 它是开源且免费的(Apache V2.0许可证)。