code: public byte[] readLine(int offset) throws IOException {
  		int lastIndex = -1;
  		int localOffset = offset;
  		int read;
  		do {
  			read = ensureBuffer(localOffset, BUFFER_SIZE);
  			if (read <= 0) {
  				// EOF
  				this.pos = this.buffer.length;
  				return null;
  			}
  
  			// NOT EOF, search for end of line
  			final int end = localOffset + read;
  			for (int idx = localOffset; (lastIndex == -1) && (idx < this.buffer.length) && (idx < end); ++idx) {
  				if ((this.buffer[idx] == '\n') || (this.buffer[idx] == '\r')) {
  					lastIndex = idx;
  				}
  			}
  			localOffset += read;
  		}
  		while (lastIndex == -1);
  		this.pos = lastIndex;
  		return Arrays.copyOfRange(this.buffer, offset, lastIndex);
  	}
docs: Replies the bytes until the next end of the first line (inclusive).
  
  @param offset is the position of the byte to read.
  @return the bytes; or <code>null</code> if EOF
  @throws IOException in case of problems