如何拉一行的每个元素并将其存储到一个变量/数组中,然后继续使用缓冲区读取器到下一行



我有一个多行列表CSV,我想在Java中拉出一行并从该行拉出每个元素。在那之后,我想进入下一行。每行有不同数量的列,所以我如何自定义代码?

我至少在寻找一些指导,我找不到任何像这样的东西。

如果要读写csv文件,使用apache的Commons csv库可以省去繁重的工作。https://commons.apache.org/proper/commons-csv/index.html可以提供帮助。一个例子(也在站点上)可以是:

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");
}

从你的描述看来,你的文件没有每列的标题。使用univocity -parser来为你做这件事——它比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许可)。

相关内容

最新更新