我主要需要读取文件中特定范围的行,如果字符串与索引字符串匹配(例如“Hello World!”),则返回 true,但我不确定该怎么做所以。我知道如何读取单行和整个文件,但不知道行的范围。是否有任何可以提供帮助的库,或者有一个简单的脚本来完成它?非常感谢任何帮助!
最佳答案
是这样的吗?
package main
import (
"bufio"
"bytes"
"fmt"
"os"
)
func Find(fname string, from, to int, needle []byte) (bool, error) {
f, err := os.Open(fname)
if err != nil {
return false, err
}
defer f.Close()
n := 0
scanner := bufio.NewScanner(f)
for scanner.Scan() {
n++
if n < from {
continue
}
if n > to {
break
}
if bytes.Index(scanner.Bytes(), needle) >= 0 {
return true, nil
}
}
return false, scanner.Err()
}
func main() {
found, err := Find("test.file", 18, 27, []byte("Hello World"))
fmt.Println(found, err)
}
关于file - Go:读取文件中特定范围的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25614176/