# CSVRecord (Apache Commons CSV 1.2 API)

org.apache.commons.csv

## Class CSVRecord

- java.lang.Object
- - org.apache.commons.csv.CSVRecord

- All Implemented Interfaces:
    Serializable, Iterable<String>

      public final class CSVRecord
      extends Object
      implements Serializable, Iterable<String>

  A CSV record parsed from a CSV file.
  Version:
    $Id: CSVRecord.java 1695167 2015-08-10 21:08:58Z ggregory $
  See Also:
    Serialized Form

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `get(Enum<?> e)` Returns a value by `Enum`.
    `String` | `get(int i)` Returns a value by index.
    `String` | `get(String name)` Returns a value by name.
    `long` | `getCharacterPosition()` Returns the start position of this record as a character position in the source stream.
    `String` | `getComment()` Returns the comment for this record, if any.
    `long` | `getRecordNumber()` Returns the number of this record in the parsed CSV file.
    `boolean` | `isConsistent()` Tells whether the record size matches the header size.
    `boolean` | `isMapped(String name)` Checks whether a given column is mapped, i.e.
    `boolean` | `isSet(String name)` Checks whether a given columns is mapped and has a value.
    `Iterator<String>` | `iterator()` Returns an iterator over the values of this record.
    `int` | `size()` Returns the number of values in this record.
    `Map<String,String>` | `toMap()` Copies this record into a new Map.
    `String` | `toString()` Returns a string representation of the contents of this record.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### get

          public String get(Enum<?> e)

      Returns a value by `Enum`.
      Parameters:
        `e` - an enum
      Returns:
        the String at the given enum String

    - #### get

          public String get(int i)

      Returns a value by index.
      Parameters:
        `i` - a column index (0-based)
      Returns:
        the String at the given index

    - #### get

          public String get(String name)

      Returns a value by name.
      Parameters:
        `name` - the name of the column to be retrieved.
      Returns:
        the column value, maybe null depending on `CSVFormat.getNullString()`.
      Throws:
        `IllegalStateException` - if no header mapping was provided
        `IllegalArgumentException` - if `name` is not mapped or if the record is inconsistent
      See Also:
        `isConsistent()`, `CSVFormat.withNullString(String)`

    - #### getCharacterPosition

          public long getCharacterPosition()

      Returns the start position of this record as a character position in the source stream. This may or may not correspond to the byte position depending on the character set.
      Returns:
        the position of this record in the source stream.

    - #### getComment

          public String getComment()

      Returns the comment for this record, if any.
      Returns:
        the comment for this record, or null if no comment for this record is available.

    - #### getRecordNumber

          public long getRecordNumber()

      Returns the number of this record in the parsed CSV file.

      ATTENTION: If your CSV input has multi-line values, the returned number does not correspond to the current line number of the parser that created this record.

      Returns:
        the number of this record.
      See Also:
        `CSVParser.getCurrentLineNumber()`

    - #### isConsistent

          public boolean isConsistent()

      Tells whether the record size matches the header size.

      Returns true if the sizes for this record match and false if not. Some programs can export files that fail this test but still produce parsable files.

      Returns:
        true of this record is valid, false if not

    - #### isMapped

          public boolean isMapped(String name)

      Checks whether a given column is mapped, i.e. its name has been defined to the parser.
      Parameters:
        `name` - the name of the column to be retrieved.
      Returns:
        whether a given column is mapped.

    - #### isSet

          public boolean isSet(String name)

      Checks whether a given columns is mapped and has a value.
      Parameters:
        `name` - the name of the column to be retrieved.
      Returns:
        whether a given columns is mapped and has a value

    - #### iterator

          public Iterator<String> iterator()

      Returns an iterator over the values of this record.
      Specified by:
        `iterator` in interface `Iterable<String>`
      Returns:
        an iterator over the values of this record.

    - #### size

          public int size()

      Returns the number of values in this record.
      Returns:
        the number of values.

    - #### toMap

          public Map<String,String> toMap()

      Copies this record into a new Map. The new map is not connect
      Returns:
        A new Map. The map is empty if the record has no headers.

    - #### toString

          public String toString()

      Returns a string representation of the contents of this record. The result is constructed by comment, mapping, recordNumber and by passing the internal values array to `Arrays.toString(Object[])`.
      Overrides:
        `toString` in class `Object`
      Returns:
        a String representation of this record.

Copyright © 2015 The Apache Software Foundation. All rights reserved.