@Test(enabled = true, dataProvider = "lineSeparatorProvider") public void writeSelectedColumnOnly(boolean quoteAllFields, char[] lineSeparator) throws Exception { CsvWriterSettings settings = new CsvWriterSettings(); String[] expectedHeaders = new String[] {"Year", "Make", "Model", "Description", "Price"}; settings.setQuoteAllFields(quoteAllFields); settings.getFormat().setLineSeparator(lineSeparator); settings.setIgnoreLeadingWhitespaces(false); settings.setIgnoreTrailingWhitespaces(false); settings.setHeaders(expectedHeaders); settings.selectFields("Model", "Price"); ByteArrayOutputStream csvResult = new ByteArrayOutputStream(); CsvWriter writer = new CsvWriter(new OutputStreamWriter(csvResult, "UTF-8"), settings); Object[][] input = new Object[][] { {"E350", "3000.00"}, {"Venture \"Extended Edition\"", "4900.00"}, {"Grand Cherokee", "4799.00"}, {"Venture \"Extended Edition, Very Large\"", "5000.00"}, {"Venture \"Extended Edition\"", "4900.00"}, {null, null}, {"5", null}, {"E350", "3000.00"}, }; writer.writeHeaders(); writer.writeRowsAndClose(input); Object[][] expectedResult = new Object[][] { {null, null, "E350", null, "3000.00"}, {null, null, "Venture \"Extended Edition\"", null, "4900.00"}, {null, null, "Grand Cherokee", null, "4799.00"}, {null, null, "Venture \"Extended Edition, Very Large\"", null, "5000.00"}, {null, null, "Venture \"Extended Edition\"", null, "4900.00"}, {null, null, null, null, null}, {null, null, "5", null, null}, {null, null, "E350", null, "3000.00"}, }; String result = csvResult.toString(); RowListProcessor rowList = new RowListProcessor(); CsvParserSettings parserSettings = new CsvParserSettings(); parserSettings.setRowProcessor(rowList); parserSettings.getFormat().setLineSeparator(lineSeparator); parserSettings.setHeaderExtractionEnabled(true); parserSettings.setIgnoreLeadingWhitespaces(false); parserSettings.setIgnoreTrailingWhitespaces(false); CsvParser parser = new CsvParser(parserSettings); parser.parse(new StringReader(result)); try { assertHeadersAndValuesMatch(rowList, expectedHeaders, expectedResult); } catch (Error e) { System.out.println("FAILED:\n===\n" + result + "\n==="); throw e; } }