package reader import ( "bufio" "io" ) type LineReader struct { filename string reader *bufio.Reader linecount int } func NewLineReader(filename string, reader io.Reader) *LineReader { return &LineReader{ filename: filename, reader: bufio.NewReader(reader), } } func (br *LineReader) ReadLine() (line string, linecount int, eof bool, err error) { var linebs []byte var isprefix bool = true for isprefix { linebs, isprefix, err = br.reader.ReadLine() if err != nil { if err == io.EOF { err = nil eof = true break } return } line += string(linebs) } br.linecount++ linecount = br.linecount return }