在Go语言中,可以使用io.Copy()
函数来实现大文件传输功能。io.Copy()
函数会从源文件(例如,一个io.Reader
接口)中读取数据,并将其写入目标文件(例如,一个io.Writer
接口)。
以下是一个使用io.Copy()
函数实现大文件传输功能的示例代码:
package main
import (
"fmt"
"io"
"os"
)
func main() {
sourceFile := "./source.txt" // 源文件路径
destinationFile := "./destination.txt" // 目标文件路径
err := copyFile(sourceFile, destinationFile)
if err != nil {
fmt.Println("文件传输失败:", err)
return
}
fmt.Println("文件传输完成")
}
// 复制文件
func copyFile(sourceFile string, destinationFile string) error {
// 打开源文件
src, err := os.Open(sourceFile)
if err != nil {
return err
}
defer src.Close()
// 创建目标文件
dst, err := os.Create(destinationFile)
if err != nil {
return err
}
defer dst.Close()
// 复制数据
_, err = io.Copy(dst, src)
if err != nil {
return err
}
return nil
}
在上述示例代码中,copyFile()
函数接受源文件和目标文件的路径作为参数,首先打开源文件和创建目标文件,然后使用io.Copy()
函数将源文件的内容复制到目标文件中。
注意,在实际应用中,可能需要处理更复杂的错误情况,例如,检查文件是否存在、权限是否正确等。此示例仅为了演示基本的大文件传输功能。