uk.ac.starlink.table.formats
Class CsvStarTable
java.lang.Object
uk.ac.starlink.table.AbstractStarTable
uk.ac.starlink.table.formats.StreamStarTable
uk.ac.starlink.table.formats.CsvStarTable
- All Implemented Interfaces:
- StarTable
- public class CsvStarTable
- extends StreamStarTable
Comma-Separated Value table.
This reader tries to read data in the semi-standard CSV format.
The intention is that it understands the version of that dialect
spoken by MS Excel, though the documentation on which it is based
was not obtained directly from MicroSoft.
Here are the rules:
- Each row must have the same number of comma-separated fields.
- Whitespace (space or tab) adjacent to a comma is ignored.
- Adjacent commas, or a comma at the start or end of a line
(whitespace apart) indicates a null field.
- Lines are terminated by any sequence of carriage-return or newline
characters ('\r' or '\n')
(a corollary of this is that blank lines are ignored).
- Cells may be enclosed in double quotes; quoted values may contain
linebreaks (or any other character); a double quote character within
a quoted value is represented by two adjacent double quotes.
- The first line may be a header line containing column names
rather than a row of data. Exactly the same syntactic rules are
followed for such a row as for data rows.
- Since:
- 21 Sep 2004
Methods inherited from class uk.ac.starlink.table.AbstractStarTable |
checkedLongToInt, getCell, getColumnAuxDataInfos, getName, getParameterByName, getParameters, getRow, getURL, isRandom, setName, setParameter, setParameters, setURL |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CsvStarTable
public CsvStarTable(DataSource datsrc)
throws TableFormatException,
IOException
getInputStream
protected PushbackInputStream getInputStream()
throws IOException
- Description copied from class:
StreamStarTable
- Convenience method which returns a buffered pushback stream based
on this table's data source.
- Overrides:
getInputStream
in class StreamStarTable
- Returns:
- input stream containing source data
- Throws:
IOException
obtainMetadata
protected RowEvaluator.Metadata obtainMetadata()
throws TableFormatException,
IOException
- Description copied from class:
StreamStarTable
- Obtains column metadata for this table, probably by reading through
the rows once and using a RowEvaluator.
- Specified by:
obtainMetadata
in class StreamStarTable
- Returns:
- information about the table represented by the character
stream
- Throws:
TableFormatException
- if the data doesn't represent this
kind of table
IOException
- if I/O error is encountered
readRow
protected List readRow(PushbackInputStream in)
throws IOException
- Reads the next row of data from a given stream.
Ignorable rows are skipped; comments may be stashed away.
- Specified by:
readRow
in class StreamStarTable
- Parameters:
in
- input stream
- Returns:
- list of Strings one for each cell in the row, or
null for end of stream
- Throws:
IOException
- if I/O error is encountered