wx

关注公众号

bufio


Golang 标准库 - bufio

bufio 包实现缓冲 I/O。它包装了一个 io.Reader 或 io.Writer 对象,创建另一个对象(Reader 或 Writer),该对象也实现接口,但为文本 I/O 提供缓冲和一些帮助。
  • 从标准输入读取一行数据

func ReadLine() {
	scanner := bufio.NewScanner(os.Stdin)
	for scanner.Scan() {
		line := scanner.Text()
		fmt.Println("input:", line) // Println will add back the final '\n'
		if line == "exit" {
			fmt.Println("exit !!!")
			break
		}
	}
	if err := scanner.Err(); err != nil {
		fmt.Fprintln(os.Stderr, "reading standard input:", err)
	}
}
  • 从标准输入读取一个单词
func ReadWord() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	for scanner.Scan() {
		input := scanner.Text()
		fmt.Println("input:", input) // Println will add back the final '\n'
		if input == "exit" {
			fmt.Println("exit !!!")
			break
		}
	}
	if err := scanner.Err(); err != nil {
		fmt.Fprintln(os.Stderr, "reading standard input:", err)
	}
}
  • bufio.Reader 和 bufio.Writer 示例
func BufReader() {
	reader := bufio.NewReader(os.Stdin)
	for {
		//input, _, _ := reader.ReadRune()
		input, _, _ := reader.ReadLine()
		fmt.Println("input:", string(input))
		if string(input) == "exit" {
			fmt.Println("exit !!!")
			break
		}
	}
}

func BufWriter() {
	writer := bufio.NewWriter(os.Stdout)
	_, err := writer.WriteString("hello world")
	if err != nil {
		return
	}
	err = writer.Flush()
	if err != nil {
		return
	}
}
🛒 站长推荐(京东联盟)

以上链接含京东联盟推广代码;通过链接购买本站可能获得少量佣金,不影响你的购买价格。

📮 关注公众号「GO语言入门之路」
GO语言入门之路 公众号二维码

每周更新 Go + AI 应用开发实战:AI 面试官完整项目、MCP、Agent 工程化,完整源码随文章首发。

微信扫码,或搜索「GO语言入门之路」关注,第一时间获取系列更新与源码,不再错过任何一篇。

如有疑问关注公众号给我留言
wx

关注公众号

©2017-2026 鲁ICP备17023316号-1 Powered by Hugo · 隐私政策