首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
|
||||
// 大文件缓冲读写:逐行处理,内存占用恒定
|
||||
func bigFileRW() {
|
||||
// 打开源文件
|
||||
srcFile, err := os.Open("file/large_file.txt")
|
||||
if err != nil {
|
||||
fmt.Printf("打开源文件失败: %v\n", err)
|
||||
return
|
||||
}
|
||||
defer srcFile.Close()
|
||||
|
||||
// 创建目标文件
|
||||
dstFile, err := os.Create("file/copy_large_file.txt")
|
||||
if err != nil {
|
||||
fmt.Printf("创建目标文件失败: %v\n", err)
|
||||
return
|
||||
}
|
||||
defer dstFile.Close()
|
||||
|
||||
// 创建缓冲读写器
|
||||
reader := bufio.NewReader(srcFile)
|
||||
writer := bufio.NewWriter(dstFile)
|
||||
defer func() {
|
||||
// 刷新缓冲区并检查错误
|
||||
if err := writer.Flush(); err != nil {
|
||||
fmt.Printf("缓冲区刷新失败: %v\n", err)
|
||||
}
|
||||
}()
|
||||
|
||||
// 逐行读取写入
|
||||
for {
|
||||
line, err := reader.ReadString('\n')
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
fmt.Printf("读取失败: %v\n", err)
|
||||
return
|
||||
}
|
||||
_, err = writer.WriteString(line)
|
||||
if err != nil {
|
||||
fmt.Printf("写入失败: %v\n", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
fmt.Println("大文件拷贝完成")
|
||||
}
|
||||
|
||||
func main() {
|
||||
bigFileRW()
|
||||
}
|
||||
Reference in New Issue
Block a user