golang读取文件代码 
时间: 2023-03-03 16:42:31 浏览: 47
以下是一个使用 Golang 读取文件的示例代码:
```go
package main
import (
"fmt"
"os"
)
func main() {
// 打开文件
file, err := os.Open("example.txt")
if err != nil {
fmt.Println("无法打开文件:", err)
return
}
defer file.Close()
// 读取文件内容
buf := make([]byte, 1024)
for {
n, err := file.Read(buf)
if n == 0 || err != nil {
break
}
fmt.Print(string(buf[:n]))
}
}
```
这段代码首先使用 `os.Open` 函数打开了一个名为 `example.txt` 的文件,并检查是否有错误。然后,它使用 `defer` 关键字来确保在函数返回之前关闭文件。接着,它使用一个循环来重复读取文件内容,并将每次读取的内容输出到控制台。在循环中,它首先创建了一个缓冲区(大小为 1024 字节),然后调用 `file.Read` 函数读取文件内容到缓冲区中。如果读取的字节数为零,或者出现了错误,循环就会停止。否则,它将读取到的内容转换成字符串,并输出到控制台上。
相关问题
golang 读取文件
可以使用 Go 标准库中的 `os` 和 `bufio` 包来读取文件。以下是一个简单的示例代码:
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// 打开文件
file, err := os.Open("filename.txt")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
// 用 bufio 包创建一个带缓冲的读取器
reader := bufio.NewReader(file)
// 循环读取文件中的内容
for {
line, err := reader.ReadString('\n')
if err != nil {
fmt.Println("Error reading file:", err)
return
}
fmt.Println(line)
// 如果读到文件结尾,退出循环
if err == io.EOF {
break
}
}
}
```
在上面的示例代码中,我们首先使用 `os.Open` 函数打开一个名为 `filename.txt` 的文件,并在函数结束时使用 `defer` 关键字关闭该文件。接着,我们使用 `bufio.NewReader` 函数创建了一个带缓冲的读取器,并在 `for` 循环中使用 `reader.ReadString` 方法循环读取文件中的每一行内容。当读取到文件结尾时,我们通过检查 `err` 变量是否等于 `io.EOF` 来退出循环。
golang读取csv文件
读取CSV文件可以使用Go标准库中的"encoding/csv"包。
下面是一个简单的示例代码:
```go
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
// 打开CSV文件
file, err := os.Open("file.csv")
if err != nil {
panic(err)
}
defer file.Close()
// 创建一个CSV阅读器
reader := csv.NewReader(file)
// 循环读取记录
for {
record, err := reader.Read()
if err != nil {
// 如果到达文件末尾,退出循环
if err == csv.ErrRecordNotFound {
break
}
panic(err)
}
// 打印记录内容
fmt.Println(record)
}
}
```
其中,`os.Open`函数用于打开CSV文件,`csv.NewReader`函数用于创建一个CSV阅读器,`reader.Read`方法用于读取一条记录。循环读取记录直到到达文件末尾。
你可以根据需要修改代码来满足你的要求。
相关推荐












