gpt4 book ai didi

go - 从文件读取时如何找到EOF

转载 作者:IT老高 更新时间:2023-10-28 13:05:31 25 4
gpt4 key购买 nike

我正在使用以下代码在 Go 中读取文件:

spoon , err := ioutil.ReadFile(os.Args[1])
if err!=nil {
panic ("File reading error")
}

现在我检查我选择的每个字节是什么字符。例如:

spoon[i]==' ' //for checking space

同样,我阅读了整个文件(我知道可能还有其他阅读方式)但是保持这种方式不变,我怎么知道我已经到达文件的 EOF 并且我应该停止进一步阅读它?

请不要建议查找spoon的长度并开始循环。我想要找到 EOF 的可靠方法。

最佳答案

使用 io.EOF 测试文件结束。例如,要计算文件中的空格数:

package main

import (
"fmt"
"io"
"os"
)

func main() {
if len(os.Args) <= 1 {
fmt.Println("Missing file name argument")
return
}
f, err := os.Open(os.Args[1])
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
data := make([]byte, 100)
spaces := 0
for {
data = data[:cap(data)]
n, err := f.Read(data)
if err != nil {
if err == io.EOF {
break
}
fmt.Println(err)
return
}
data = data[:n]
for _, b := range data {
if b == ' ' {
spaces++
}
}
}
fmt.Println(spaces)
}

关于go - 从文件读取时如何找到EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com