+++ /dev/null
-package javajs.util;
-
-import java.io.BufferedReader;
-
-/**
- * A simple class to read a designated number of bytes from a
- * file and then return them line by line, skipping lines that
- * start with #, and including the \n or \r characters at line ends.
- *
- * Generally useful for determining what sort of data a file contains.
- *
- */
-public class LimitedLineReader {
- private char[] buf;
- private int cchBuf;
- private int ichCurrent;
-
- public LimitedLineReader(BufferedReader bufferedReader, int readLimit)
- throws Exception {
- bufferedReader.mark(readLimit + 1);
- buf = new char[readLimit];
- cchBuf = Math.max(bufferedReader.read(buf, 0, readLimit), 0);
- ichCurrent = 0;
- bufferedReader.reset();
- }
-
- public String getHeader(int n) {
- return (n == 0 ? new String(buf) : new String(buf, 0, Math.min(cchBuf, n)));
- }
-
- public String readLineWithNewline() {
- while (ichCurrent < cchBuf) {
- int ichBeginningOfLine = ichCurrent;
- char ch = 0;
- while (ichCurrent < cchBuf &&
- (ch = buf[ichCurrent++]) != '\r' && ch != '\n') {
- }
- if (ch == '\r' && ichCurrent < cchBuf && buf[ichCurrent] == '\n')
- ++ichCurrent;
- int cchLine = ichCurrent - ichBeginningOfLine;
- if (buf[ichBeginningOfLine] == '#')
- continue; // flush comment lines;
- return new String(buf, ichBeginningOfLine, cchLine);
- }
- return "";
- }
-}
-