Я пытаюсь читать и анализировать файлы CSV.Проблема, с которой я столкнулся, заключается в том, что я не могу использовать несколько функций в одном парсере, и мне нужно создавать новые, просто чтобы использовать функцию или метод для него.Я знаю, что мне нужно как-то сбросить парсер, но я не могу найти в интернете документацию о том, как это сделать, поэтому я надеялся, что кто-то здесь может мне помочь?
Вот мой код:
import org.apache.commons.csv.*;
import java.io.IOException;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.nio.file.Files;
import java.nio.file.Paths;
public class CsvParse {
private static final String pathToFile = "PATH\\TO\\CSV\\FILE.csv";
static String header1 = "Country";
static String header2 = "Exports";
static String header3 = "Value";
public static void main(String[] args)throws IOException {
File f = new File(pathToFile);
Reader reader = Files.newBufferedReader(Paths.get(pathToFile));
CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT
.withHeader(header1, header2, header3)
.withIgnoreHeaderCase()
.withTrim());
printOutData(parser);
listExporters(parser, "tea");
}
public static void listExporters(CSVParser parser, String exportOfInterest){
for(CSVRecord record : parser){
if((record.get(header2)).contains(exportOfInterest)){
System.out.println(record.get(header1));
}
}
}
public static void printOutData(CSVParser parser){
for(CSVRecord record : parser){
String country = record.get(header1);
String exports = record.get(header2);
String value = record.get(header3);
System.out.println("Record nr. - "+record.getRecordNumber());
System.out.print(country+" || ");
System.out.print(exports+" || ");
System.out.println(value);
System.out.println("-----------------\n");
}
}
}
Я попытался сбросить считыватель и закрыть сам синтаксический анализатор, но это просто выдает IOException, потому что поток был закрыт.