Class CsvReader

java.lang.Object
tech.tablesaw.io.FileReader
tech.tablesaw.io.csv.CsvReader
All Implemented Interfaces:
DataReader<CsvReadOptions>

@Immutable public class CsvReader extends FileReader implements DataReader<CsvReadOptions>
  • Constructor Details

    • CsvReader

      public CsvReader()
      Constructs a CsvReader
  • Method Details

    • register

      public static void register(ReaderRegistry registry)
    • read

      public Table read(CsvReadOptions options)
      Specified by:
      read in interface DataReader<CsvReadOptions>
    • printColumnTypes

      public String printColumnTypes(CsvReadOptions options) throws IOException
      Returns a string representation of the column types in file csvFilename, as determined by the type-detection algorithm

      This method is intended to help analysts quickly fix any erroneous types, by printing out the types in a format such that they can be edited to correct any mistakes, and used in an array literal

      For example:

      LOCAL_DATE, // 0 date SHORT, // 1 approval STRING, // 2 who

      Note that the types are array separated, and that the index position and the column name are printed such that they would be interpreted as comments if you paste the output into an array:

      Throws:
      IOException - if file cannot be read
    • detectColumnTypes

      protected ColumnType[] detectColumnTypes(Reader reader, CsvReadOptions options)
      Estimates and returns the type for each column in the delimited text file file

      The type is determined by checking a sample of the data in the file. Because only a sample of the data is checked, the types may be incorrect. If that is the case a Parse Exception will be thrown.

      The method printColumnTypes() can be used to print a list of the detected columns that can be corrected and used to explicitly specify the correct column types.

    • read

      public Table read(Source source)
      Specified by:
      read in interface DataReader<CsvReadOptions>