3 import java.io.BufferedReader;
\r
4 import java.io.IOException;
\r
5 import java.io.Reader;
\r
6 import java.io.StringReader;
\r
9 * Just a simple abstract class to join a String reader and a String[]
\r
10 * reader under the same BufferedReader umbrella.
\r
12 * Subclassed as StringDataReader, ArrayDataReader, and ListDataReader
\r
16 public abstract class DataReader extends BufferedReader {
\r
18 public abstract DataReader setData(Object data);
\r
20 protected int ptMark;
\r
22 public DataReader() {
\r
23 super(new StringReader(""));
\r
26 protected DataReader(Reader in) {
\r
30 public BufferedReader getBufferedReader() {
\r
34 protected int readBuf(char[] buf, int off, int len) throws IOException {
\r
35 // not used by StringDataReader
\r
37 String line = readLine();
\r
41 int linelen = line.length();
\r
42 for (int i = off; i < len && linelen >= 0; i++) {
\r
43 if (linept >= linelen) {
\r
47 linelen = (line == null ? -1 : line.length());
\r
49 buf[i] = line.charAt(linept++);
\r