Вы можете использовать библиотеку с открытым исходным кодом uniVocity-parsers .С помощью этой библиотеки вы можете не только выбирать столбцы по своему усмотрению, но и выбирать столбцы в любой последовательности.
Со следующими заголовками: Имя | Номер | Цвет1 | Цвет2 ...... | Цвет67|
Мы выбираем только столбцы "Color1", "Color3" и "Color2" из CSV со следующим кодом:
public static void main(String[] args) throws FileNotFoundException {
// 1st, config the CSV reader
CsvParserSettings settings = new CsvParserSettings();
settings.getFormat().setLineSeparator("\n");
settings.selectFields("Color1", "Color3", "Color2");
// 2nd, creates a CSV parser with the configs
CsvParser parser = new CsvParser(settings);
// 3rd, parses all rows of data in selected columns from the CSV file into a matrix
List<String[]> resolvedData = parser.parseAll(new FileReader("/examples/example.csv"));
// 3rd, process the matrix with business logic
for (String[] row : resolvedData) {
StringBuilder strBuilder = new StringBuilder();
for (String col : row) {
strBuilder.append(col).append("\t");
}
System.out.println(strBuilder);
}
}
И вы получите выходные данные для этих 3столбцы:
красный синий серый
синий желтый белый