我需要将一个整数文件读入数组。我已经使用以下代码使其工作:
package main
import (
"fmt"
"io"
"os"
)
func readFile(filePath string) (numbers []int) {
fd, err := os.Open(filePath)
if err != nil {
panic(fmt.Sprintf("open %s: %v", filePath, err))
}
var line int
for {
_, err := fmt.Fscanf(fd, "%d\n", &line)
if err != nil {
fmt.Println(err)
if err == io.EOF {
return
}
panic(fmt.Sprintf("Scan Failed %s: %v", filePath, err))
}
numbers = append(numbers, line)
}
return
}
func main() {
numbers := readFile("numbers.txt")
fmt.Println(len(numbers))
}
文件 numbers.txt 仅包含:
1
2
3
...
ReadFile()
看起来太长了(也许是因为错误处理)。
是否有更短、更符合Go语言惯例的方法来加载文件?
fd.Close()
。在readFile
的第二行添加defer fd.Close()
。 - Mostafa