123456789101112131415161718192021222324252627282930313233343536373839 |
- 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
- }
|