From 75a88f7cd34475b8fd466568cff21fd5e97d8714 Mon Sep 17 00:00:00 2001 From: Thiago Zilli Sarmento Date: Fri, 14 Jun 2024 15:18:57 -0300 Subject: [PATCH] chore: fix ReadFileByLine change away of buffer --- .gitignore | 6 +++++ files/files.go | 66 ++++++++++---------------------------------------- 2 files changed, 19 insertions(+), 53 deletions(-) diff --git a/.gitignore b/.gitignore index e69de29..3cf9e95 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,6 @@ + +build/* +!build/.gitkeep + +tmp/* +!tmp/.gitkeep diff --git a/files/files.go b/files/files.go index 96e8a0a..e144c8d 100644 --- a/files/files.go +++ b/files/files.go @@ -218,59 +218,19 @@ func (f *Files) ReadFileByLine(filePath string) ([]string, error) { defer file.Close() var lines []string - - info, err := file.Stat() - if err != nil { - return nil, err - } - - var maxSize int - scanner := bufio.NewScanner(file) - maxSize = int(info.Size()) - buffer := make([]byte, 0, maxSize) - scanner.Buffer(buffer, maxSize) - - for scanner.Scan() { - lines = append(lines, scanner.Text()) - } - - if err := scanner.Err(); err != nil { - return nil, err - } - - return lines, nil -} - -func (f *Files) ReadFileByLineP(filePath string, param ...int) ([]string, error) { - file, err := os.Open(filePath) - if err != nil { - return nil, err - } - defer file.Close() - - var lines []string - - p1 := 512 - p2 := 1024 - - if len(param) == 0 { - param = append(param, p1, p2) - } else { - p1 = param[0] - p2 = param[1] - } - - maxCapacity := p1 * p2 - buf := make([]byte, maxCapacity) - scanner := bufio.NewScanner(file) - scanner.Buffer(buf, maxCapacity) - - for scanner.Scan() { - lines = append(lines, scanner.Text()) - } - - if err := scanner.Err(); err != nil { - return nil, err + reader := bufio.NewReader(file) + for { + line, err := reader.ReadString('\n') + if err != nil { + if err == io.EOF { + if len(line) > 0 { + lines = append(lines, line) + } + break + } + return nil, err + } + lines = append(lines, line) } return lines, nil