01: package com.bm.utils.csv;
02:
03: import java.io.IOException;
04:
05: /**
06: * Read files in comma separated value format.
07: *
08: * @author Daniel Wiese
09: * @since 17.04.2006
10: */
11: public interface CSVParse {
12:
13: /**
14: * Read the next value from the file. The line number from which this value
15: * was taken can be obtained from getLastLineNumber().
16: *
17: * @return the next value or null if there are no more values.
18: * @throws IOException
19: * if an error occurs while reading.
20: *
21: */
22: String nextValue() throws IOException;
23:
24: /**
25: * Get the line number that the last token came from.
26: *
27: * @return line number or -1 if no tokens have been returned yet.
28: *
29: */
30: int lastLineNumber();
31:
32: /**
33: * Get the line number that the last token came from.
34: * <p>
35: * New line breaks that occur in the middle of a token are not counted in
36: * the line number count.
37: *
38: * @return line number or -1 if no tokens have been returned yet.
39: *
40: */
41: int getLastLineNumber();
42:
43: /**
44: * Change this parser so that it uses a new delimiter.
45: * <p>
46: * The initial character is a comma, the delimiter cannot be changed to a
47: * quote or other character that has special meaning in CSV.
48: *
49: * @param newDelim
50: * delimiter to which to switch.
51: * @throws BadDelimiterException
52: * if the character cannot be used as a delimiter.
53: *
54: */
55: void changeDelimiter(char newDelim);
56:
57: /**
58: * Change this parser so that it uses a new character for quoting.
59: * <p>
60: * The initial character is a double quote ("), the delimiter cannot be
61: * changed to a comma or other character that has special meaning in CSV.
62: *
63: * @param newQuote
64: * character to use for quoting.
65: * @throws BadQuoteException
66: * if the character cannot be used as a quote.
67: *
68: */
69: void changeQuote(char newQuote);
70:
71: /**
72: * Close any stream upon which this parser is based.
73: *
74: * @since ostermillerutils 1.02.26
75: * @throws IOException
76: * if an error occurs while closing the stream.
77: */
78: void close() throws IOException;
79:
80: }
|