go-zero
go-zero copied to clipboard
core -> filex-> file.go -> firstLine has error
发现两个问题:
- 如果内容为空(什么都没有,包括没有\n\r什么的),程序会出现死 loop, 如果 if n== 0 { return string(first), nil }
- 没有对前端有空行(\r\n, \n, \t)这些字节进行处理, 如果前面有空行,返回的第一行数据有问题
- 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
}