【发布时间】:2013-01-06 07:55:14
【问题描述】:
我正在使用以下代码在 Go 中读取文件:
spoon , err := ioutil.ReadFile(os.Args[1])
if err!=nil {
panic ("File reading error")
}
现在我检查我选择的每个字节是什么字符。例如:
spoon[i]==' ' //for checking space
同样,我阅读了整个文件(我知道可能还有其他阅读方式) 但是保持这种方式不变,我怎么知道我已经达到了文件的 EOF 并且我应该停止进一步阅读它?
请不要建议找到spoon的长度并开始循环。我想要找到 EOF 的可靠方法。
【问题讨论】:
-
简单的解决方案:单片眼镜!
-
@thang 什么是单片眼镜?
-
@Worlock:再一次,上面显示的问题不直接涉及任何EOF。它可能仅从返回的
spoon切片中的字节数推断出来,如果按顺序读取文件,则会出现io.EOF。即使io.ReadFile可能从未在此设置中看到任何 EOF。stat文件,调整缓冲区(返回的切片)并要求操作系统完全填充它会更便宜。
标签: go file-handling