/** * Returns the next batch of rows from the CSV file. * <p> * This will return up to the specified number of rows from the file at the current iteration point. * An empty list is returned if there are no more rows. * * @param count the number of rows to try and get, negative returns an empty list * @return the next batch of rows, up to the number requested * @throws UncheckedIOException if an IO exception occurs * @throws IllegalArgumentException if the file cannot be parsed */ public List<CsvRow> nextBatch(int count) { List<CsvRow> rows = new ArrayList<>(); for (int i = 0; i < count; i++) { if (hasNext()) { rows.add(next()); } } return rows; }
List<CsvRow> rows = new ArrayList<>(); while (hasNext() && selector.test(peek())) { rows.add(next());
List<FailureItem> failures = new ArrayList<>(); while (csv.hasNext()) { CsvRow row = csv.next(); try { String typeRaw = row.getField(TYPE_FIELD); List<CsvRow> variableRows = new ArrayList<>(); while (csv.hasNext() && csv.peek().getField(TYPE_FIELD).toUpperCase(Locale.ENGLISH).equals("VARIABLE")) { variableRows.add(csv.next());
public void test_of_headerComment() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV4), true)) { assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 3); assertEquals(csvFile.headers().size(), 2); assertEquals(csvFile.headers().get(0), "h1"); assertEquals(csvFile.headers().get(1), "h2"); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r1"); assertEquals(row0.field(1), "r2"); } }
public void test_of_comment_blank_with_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV2), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 5); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r21"); assertEquals(row0.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public void test_of_blank_row() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV3), false)) { assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = csvFile.next(); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public void test_of_empty_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(""), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.containsHeader("a"), false); assertEquals(csvFile.hasNext(), false); assertEquals(csvFile.hasNext(), false); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class); } }
public void test_of_comment_blank_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV2), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 1); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = csvFile.next(); assertEquals(row1.lineNumber(), 5); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public void test_of_simple_no_header_tabs() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1T), false, '\t')) { assertEquals(csvFile.headers().size(), 0); CsvRow row0 = csvFile.next(); assertEquals(row0.headers().size(), 0); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); assertEquals(csvFile.hasNext(), true); CsvRow row1 = csvFile.next(); assertEquals(row1.headers().size(), 0); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); assertEquals(csvFile.hasNext(), true); CsvRow row2 = csvFile.next(); assertEquals(row2.headers().size(), 0); assertEquals(row2.fieldCount(), 2); assertEquals(row2.field(0), "r21"); assertEquals(row2.field(1), "r22"); assertEquals(csvFile.hasNext(), false); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class); } }
assertEquals(headers.get(1), "h2"); CsvRow peeked = csvFile.peek(); CsvRow row0 = csvFile.next(); assertEquals(row0, peeked); assertEquals(row0.headers(), headers); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = csvFile.next(); assertEquals(row1.headers(), headers); assertEquals(row1.lineNumber(), 3); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class);
assertEquals(csvFile.hasNext(), true); CsvRow peeked = csvFile.peek(); CsvRow row0 = csvFile.next(); assertEquals(row0, peeked); assertEquals(row0.headers().size(), 0); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = csvFile.next(); assertEquals(row1.headers().size(), 0); assertEquals(row1.lineNumber(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); CsvRow row2 = csvFile.next(); assertEquals(row2.headers().size(), 0); assertEquals(row2.lineNumber(), 3); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class);