Open Source Repository

Home /csv/supercsv-1.52 | Repository Home


org/supercsv/io/ICsvReader.java
package org.supercsv.io;

import java.io.IOException;

import org.supercsv.prefs.CsvPreference;

/**
 * The parent type for csv-readers. It defines the basic functionality of any readers.
 
 @author Kasper B. Graversen
 */
interface ICsvReader {

/** close the stream */
public void close() throws IOException;

/**
 * Get column N of the current line This is useful for parsing e.g. first column and react by reading the line on the
 * basis of that first argument
 
 @since 1.0
 */
public String get(int Nthrows IOException, IndexOutOfBoundsException;

/**
 * This method is used to get an optional header of the csv file and move the file curser to the first row containing
 * data (the second row from the top) The header can subsequently be used as the <code>nameMapper</code> for read
 * operations.
 
 @param firstLineCheck
 *            denotes whether a check should be made to ensure only the first line of the file can represent a header
 @throws IOException
 *             if an I/O error occurs or if the method is not called as the first read operation on a source. *
 @since 1.0
 */
public String[] getCSVHeader(boolean firstLineCheckthrows IOException;

/**
 * gets the current position in the file. The first line of the file is line number 1
 
 @since 1.0
 */
public int getLineNumber();

/**
 * returns the length of the current line
 
 @since 1.0
 */
public int length() throws IOException;

/**
 * Determine how the reader reads the input source.
 
 @since 1.0
 */
public ICsvReader setPreferences(CsvPreference preference);

/**
 * Determine how the reader reads the csv file.
 
 @since 1.10
 */
public ICsvReader setTokenizer(ITokenizer tokenizer);

}