Golang中读取文件最常见的错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang中读取文件最常见的错误相关的知识,希望对你有一定的参考价值。

参考技术A

使用文件名作为输入

另一个常见错误是将文件名传递给函数。

假设我们必须实现一个函数来计算文件中的空行数。最自然的实现是这样的:

filename 作为输入给出,所以我们打开它然后我们实现我们的逻辑,对吧?

现在,假设我们希望在此函数之上实现 单元测试 ,以使用普通文件,空文件,具有不同编码类型的文件等进行测试。很容易变得非常难以管理。

此外,如果我们想要实现相同的逻辑但是对于HTTP主体,例如,我们将不得不为此创建另一个函数。

Go有两个很棒的抽象: io.Reader 和 io.Writer 。相反,通过一个文件名,我们可以简单地传递一个 io.Reader 作为 抽象 的数据源。

它是文件吗?一个HTTP正文?字节缓冲区?这并不重要,因为我们仍然会使用相同的 Read 方法。

在我们的例子中,我们甚至可以缓冲输入以逐行读取它。所以,我们可以使用 bufio.Reader 它的 ReadLine 方法:

现在,打开文件本身的责任委托给 count 客户:

使用第二种实现,无论 实际数据源 如何,都可以调用该函数。同时,它将 促进 我们的单元测试,因为我们可以简单地创建一个 bufio.Reader 来自 string :

翻译自: https://medium.com/swlh/the-most-common-mistakes-with-read-file-in-golang-be87239fd03b

以上是关于Golang中读取文件最常见的错误的主要内容,如果未能解决你的问题,请参考以下文章

Go_18: Golang 中三种读取文件发放性能对比

golang 文件操作

GoLang读写数据---上

golang中文件以及文件夹路径相关操作

GoLang -- json文件操作

GoLang读写数据---中