CsvParserSettings parserSettings = new CsvParserSettings(); // Let's extract headers parserSettings.setHeaderExtractionEnabled(true); parserSettings.selectFields("Field 5", "Field 1"); //Rows will come organized according to your field selection List<String[]> allRows = parser.parseAll("path/to/file.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); } }
CsvParserSettings settings = new CsvParserSettings(); //many options here, check the tutorial settings.setHeaderExtractionEnabled(true); //tells the parser to use the first row as the header row settings.selectFields("X", "X2"); //selects the fields
String input = "before,after,\n" + "100,109,\n" + "93,125,(Highly unexpected!)\n" + "106,104,(No change)\n" + "115,101,"; ObjectRowListProcessor rowProcessor = new ObjectRowListProcessor(); rowProcessor.convertFields(Conversions.toInteger()).set("before", "after"); //converts the given columns to integer CsvParserSettings settings = new CsvParserSettings(); //many options here, check the tutorial settings.setRowProcessor(rowProcessor); settings.setHeaderExtractionEnabled(true); //we want to use the first row as the headers row settings.selectFields("after", "before"); // here I even switched the order of the fields //parse new CsvParser(settings).parse(new StringReader(input)); //get the rows List<Object[]> rows = rowProcessor.getRows(); for(Object[] row : rows){ System.out.println(Arrays.toString(row)); }
CsvParserSettings parserSettings = new CsvParserSettings(); parserSettings.setHeaderExtractionEnabled(true); parserSettings.selectFields("f", "w", "b"); CsvParser parser = new CsvParser(parserSettings); List<String[]> parsedRows = parser.parseAll(newFileReader("test.csv"));
public static void main(String... args){ //First we parse the daily update file. CsvParserSettings settings = new CsvParserSettings(); //here we tell the parser to read the CSV headers settings.setHeaderExtractionEnabled(true); //and to select ONLY the following columns. //This ensures rows with a fixed size will be returned in case some records come with less or more columns than anticipated. settings.selectFields("id", "name", "city", "zip", "occupation"); CsvParser parser = new CsvParser(settings); //Here we parse all data into a list. List<String[]> dailyRecords = parser.parseAll(newReader("/path/to/daily.csv")); //And convert them to a map. ID's are the keys. Map<String, String[]> mapOfDailyRecords = toMap(dailyRecords); ... //we'll get back here in a second.
@Test public void fieldSelectionTest() throws Exception { CsvParserSettings settings = new CsvParserSettings(); settings.setHeaderExtractionEnabled(true); settings.getFormat().setLineSeparator("\n"); settings.setNullValue("N/A"); //null value here settings.selectFields("Year", "???"); CsvParser parser = new CsvParser(settings); String input = "" + "Year,Header1,Header2\n" + "2000,foo,bar\n" + "2016,blah,etc\n"; for(String[] row : parser.parseAll(new StringReader(input))){ System.out.println(Arrays.toString(row)); } }
settings.selectFields("id", "company", "exp", "salary");
public CsvParserSettings csvParserSettings() { CsvParserSettings parserSettings = new CsvParserSettings(); parserSettings.setLineSeparatorDetectionEnabled(true); parserSettings.setHeaderExtractionEnabled(true); parserSettings.selectFields("label", "elapsed", "success", "timeStamp"); RowListProcessor rowProcessor = new RowListProcessor(); ConcurrentRowProcessor concurrentRowProcessor = new ConcurrentRowProcessor(rowProcessor); parserSettings.setProcessor(concurrentRowProcessor); return parserSettings; } }