go-zero icon indicating copy to clipboard operation
go-zero copied to clipboard

core -> filex-> file.go -> firstLine has error

Open Owen-Zhang opened this issue 1 week ago • 0 comments

发现两个问题:

  1. 如果内容为空(什么都没有,包括没有\n\r什么的),程序会出现死 loop, 如果 if n== 0 { return string(first), nil }
  2. 没有对前端有空行(\r\n, \n, \t)这些字节进行处理, 如果前面有空行,返回的第一行数据有问题
  3. lastline也有同样的问题

firstline 下面这样怎么样

func FirstLine(filename string) (string, error) {
	file, err := os.Open(filename)
	if err != nil {
		return "", err
	}
	defer file.Close()

	firstLine := ""
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		temp := scanner.Text()
		if len(temp) == 0 {
			continue
		}
		firstLine = temp
		break
	}
	if err := scanner.Err(); err != nil {
		return "", err
	}
        return firstLine, nil
}

Owen-Zhang avatar Jun 27 '24 09:06 Owen-Zhang