package main import ( "bufio" "fmt" "io" "os" ) func main() { // 打开源文件 srcFile, err := os.Open("io/source.txt") if err != nil { fmt.Printf("打开源文件失败: %v\n", err) return } defer srcFile.Close() // 创建目标文件 dstFile, err := os.Create("io/bufio_copy.txt") if err != nil { fmt.Printf("创建目标文件失败: %v\n", err) return } defer dstFile.Close() // 初始化缓冲读写器(默认4096字节缓冲区) reader := bufio.NewReader(srcFile) writer := bufio.NewWriter(dstFile) // 函数退出前刷新缓冲区,确保数据落盘 defer func() { if err := writer.Flush(); err != nil { fmt.Printf("缓冲区刷新失败: %v\n", err) } }() // 流式拷贝:io.Copy底层自动适配缓冲 written, err := io.Copy(writer, reader) if err != nil { fmt.Printf("文件拷贝失败: %v\n", err) return } fmt.Printf("缓冲拷贝完成,总数据量: %d 字节\n", written) }