code: public LineBuffer readLineBuffer(int len)
          throws IOException
      {
          len=fillLine(len>0?len:_buf.length);
  
          if (len<0)
              return null;
          
          if (len==0)
          {
              _lineBuffer.size=0;
              return _lineBuffer;
          }
  
          _byteBuffer.setStream(_mark,len);
          
          _lineBuffer.size=0;
          int read=0;
          while(read<len && _reader.ready())
          {
              int r = _reader.read(_lineBuffer.buffer,
                                   read,
                                   len-read);
              if (r<=0)
                  break;
              read+=r;
          }
          _lineBuffer.size=read;
          _mark=-1;
  
          return _lineBuffer;
      }
docs: Read a Line ended by CR, LF or CRLF.
  Read a line into a shared LineBuffer instance.  The LineBuffer is
  resused between calls and should not be held by the caller.
  The default or supplied encoding is used to convert bytes to
  characters.
  @param len Maximum length of a line, or 0 for default
  @return LineBuffer instance or null for EOF.
  @exception IOException