Go 数据读取
在Go编程中,数据读取是一个基础但非常重要的操作。无论是从文件、网络流还是标准输入中读取数据,掌握这些技能对于构建高效的程序至关重要。本文将逐步介绍如何在Go中读取数据,并通过实际案例帮助你理解这些概念。
1. 从标准输入读取数据
在Go中,os
包提供了与操作系统交互的功能,包括从标准输入读取数据。以下是一个简单的示例,展示如何从标准输入读取一行文本:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入一些文本: ")
text, _ := reader.ReadString('\n')
fmt.Println("你输入的是:", text)
}
输入:
Hello, Go!
输出:
你输入的是: Hello, Go!
备注
bufio.NewReader
创建了一个带缓冲的读取器,它可以高效地读取输入数据。ReadString('\n')
会一直读取,直到遇到换行符为止。
2. 从文件读取数据
读取文件是Go中常见的操作。以下示例展示了如何打开一个文件并逐行读取其内容:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("example.txt")
if err != nil {
fmt.Println("无法打开文件:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
fmt.Println("读取文件时出错:", err)
}
}
文件内容 (example.txt):
第一行
第二行