多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

使用Go语言实现文件的复制

使用Go语言实现文件的复制 这是程序的主体部分package main import ( bufio fmt io os ) func CopyFile(dstFileName string, srcFileName string) (written int64, err error) { srcfile, err : os.Open(srcFileName) if err ! nil { fmt.Printf(os.Open err%v\n, err) } defer srcfile.Close() reader : bufio.NewReader(srcfile) //打开srcFileName文件 dstfile, err : os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0666) if err ! nil { fmt.Printf(os.OpenFile err%v\n, err) return } writer : bufio.NewWriter(dstfile) defer dstfile.Close() return io.Copy(writer, reader) } func main() { ab, _ : CopyFile(D:/Users/zhang_jun/Desktop/hello.mp3, D:/Users/zhang_jun/Pictures/视频项目/秋天不回来.mp4) fmt.Println(ab) }运行结果录制_2024_04_27_15_04_14_8介绍 引入的几个包import ( bufio//缓存 fmt io os )文件复制的函数func CopyFile(dstFileName string, srcFileName string) (written int64, err error) { //dstFileNamesrcFileName分别代表文件的地址 //dstFileName复制的文件 //srcFileName被复制的文件 srcfile, err : os.Open(srcFileName) if err ! nil { fmt.Printf(os.Open err%v\n, err) } //defer后面的函数只有在当前函数执行完毕后才能执行通常用于释放资源这里用于文件的关闭 defer srcfile.Close() reader : bufio.NewReader(srcfile)//创建一个新的读取器带缓存 //打开dstFileName文件 dstfile, err : os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0666) //权限为O_WRONLY和O_CREATE,即是只写和创建 if err ! nil { fmt.Printf(os.OpenFile err%v\n, err) return } writer : bufio.NewWriter(dstfile) //bufio.NewWriter() 函数会将dstfile这个文件对象包装成一个带缓冲区的写入器。 defer dstfile.Close() //调用copy函数进行复制 //Copy()函数会从reader中读取数据并将数据写入到writer中直到读取到reader的末尾或发生错误为止。 return io.Copy(writer, reader)//io.Copy(writer, reader) }CopyFile返回文件的大小bit和error主函数func main() { ab, _ : CopyFile(D:/Users/zhang_jun/Desktop/hello.mp3, D:/Users/zhang_jun/Pictures/视频项目/秋天不回来.mp4) fmt.Println(ab) }附打开文件的的类型在Go语言中可以使用os.OpenFile()函数来打开文件并指定打开文件的方式和权限。以下是一些常用的打开文件方式的示例1. 以只读方式打开文件O_RDONLY2. 以只写方式打开文件O_WRONLY3. 以读写方式打开文件os.O_RDWR4. 如果文件不存在则创建文件并以读写方式打开O_CREATE|os.O_RDWR5. 追加方式打开文件O_APPEND|os.O_WRONLY在以上示例中os.OpenFile()函数的第二个参数用来指定打开文件的方式常用的参数有os.O_RDONLY只读、os.O_WRONLY只写、os.O_RDWR读写、os.O_CREATE如果文件不存在则创建、os.O_APPEND追加内容到文件末尾等。第三个参数是文件的权限通常使用八进制表示例如0644表示文件所有者有读写权限组用户和其他用户只有读权限。请注意在使用完文件后需要调用file.Close()方法关闭文件以释放资源。
返回列表