# bufio 与 io 包

URL: https://caijiao.org/go/05-utils/02-bufio-io
Source: docs/go/05-utils/02-bufio-io.md
Description: 本节介绍 Go 语言中 bufio 和 io 包的基本用法，提升文件和流的读写效率。

## 1. bufio 包

提供带缓冲的读写，提升效率，常用于文件、网络等流操作。

### 读取

```go
file, _ := os.Open("file.txt")
defer file.Close()

reader := bufio.NewReader(file)
line, _, _ := reader.ReadLine()
fmt.Println(string(line))
````

### 写入

```go
file, _ := os.Create("file.txt")
defer file.Close()

writer := bufio.NewWriter(file)
writer.WriteString("Hello bufio\n")
writer.Flush()  // 必须调用刷新才能写入文件
```

## 2. io 包

提供基本的接口和实用函数，如 `io.Copy`、`io.ReadAll`。

```go
srcFile, _ := os.Open("src.txt")
defer srcFile.Close()

dstFile, _ := os.Create("dst.txt")
defer dstFile.Close()

io.Copy(dstFile, srcFile)  // 拷贝内容
```

---

合理使用 bufio 和 io 包，提升数据流处理性能和简化代码。
