Files
bulma/io/bufio_demo.go

46 lines
954 B
Go

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)
}