拷贝文件(图片视频音频)|学习笔记

简介: 快速学习拷贝文件(图片视频音频)

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:拷贝文件(图片视频音频)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9732


拷贝文件(图片视频音频)

 

内容介绍

一、 简介

二、 代码实现

 

一、 简介

文件编程应用实例:拷贝文件

说明:将一张图片/电影/mp3等二进制文件拷贝到另外一个文件e盘里,即e:/abc.jpg

打开手册,在io包里提供了一个copy手册:

func Copy(dst Writer, src Reader) (written int64, err error)。

将src拷贝到dst,如:flower.zip。

如果发生错误,就是一个error函数。

注意:Copy函数是io包提供的

 

二、 代码实现

先将前面的文件拷贝过来,写一个文件main.go:

package main

import

"fmt”

“io/ioutil"

func main() f

//将d:/flower.jpg文件拷贝到e:/abc .jpg

//自己编写一个函数,接收两个文件路径

srcFileName dstFileName func CopyFile

(dstFileName string, srcFileName string) (written int64, err error) [

os:open将其打开,这个就是原文件的句柄。

//信息输出

srcFile, err := os.Open(srcFileName)

if err != nil t

fmt.Printf("open file err=%v\n", err)

如果没有出错,把句柄就拿到了,此时可以构建writer

//通过srcfile,获取到 Reader

reader := bufio.NewReader(srcFile)

//打开dstFileName,文件路径可能不存在,所以不能用os打开,此时需要采用另外一种方式,即读、追加、写的方式打开。如果不存在就创建文件。

dstFile, err := os.OpenFile(dstFileName, Os.O_WRONLY Os.O_CREATE,0666)if err l= nil [

fmt.Printf("open file err=%v\n", err)

return

//有了文件句柄,就可以通过dstFile,获取到 Writer

writer := bufio.NewWriter(dstFile)

此时已经拿到Reader和Writer了,writer同目标文件关联起来,Reader同原文件关联起来。

//最后回到原来位置,分别关闭两个文件

defer srcFile.Close()

defer dstFile.close()

return io.Copy(writer, reader)

到此为止拷贝文件函数写完。

调用完成文件拷贝

Func main()
//将d:/flower.jpg 文件拷贝到 e:/abc.jpg
//调用CopyFile 完成文件拷贝
srcFile:="d:/flower.jpg"
dstFile:="e:/abc.jpg"m

//判断有无错误

err := CopyFile(dstFile, srcFile)

if err == nil//此时说明没有错误

fmt.Printf("拷贝完成”)

) else

fmt.Printf("拷贝错误err=%v", err)//拷贝的错误信息

注意:

在这个位置下://自己编写一个函数,接收两个文件路径 srcFileName dstFileName,MP3或者电影,都可以完成拷贝,因为他们是二进制文件。

此时运行起来,运行结果如下:

image.png

发现问题,没有定义os,此时加入os:

package main

import

"fmt”

"os”

此时再次运行,因为此时使用的是待缓存的Reader和writer来完成的,需要再加入"bufio”

再次运行:

image.png

此时拷贝完成。此时在e盘的图片是可以的。同理,音频等也可以被拷贝。

相关文章
|
6月前
|
C++ 计算机视觉
Opencv(C++)系列学习---读取视频文件和打开摄像头
Opencv(C++)系列学习---读取视频文件和打开摄像头
249 0
|
计算机视觉
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
|
6月前
|
Linux C语言
ffmpeg编程查看视频文件信息
ffmpeg编程查看视频文件信息
109 0
|
存储 Cloud Native Linux
音视频 ffmpeg命令图片与视频互转
音视频 ffmpeg命令图片与视频互转
ffmpeg实战将视频转换为图片
ffmpeg实战将视频转换为图片
262 0
ffmpeg实战将视频转换为图片
|
Linux
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)
2007 1
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)
|
编解码 iOS开发 内存技术
iOS 录音、音频的拼接剪切以及边录边压缩转码
iOS 录音、音频的拼接剪切以及边录边压缩转码
840 0
iOS 录音、音频的拼接剪切以及边录边压缩转码
|
文件存储 Android开发 数据安全/隐私保护
Android图片添加水印图片并把图片保存到文件存储
Android图片添加水印图片并把图片保存到文件存储 package zhangphil.test; import android.
1495 0
成功解决windows系统的视频格式文件不显示缩略图内容问题
成功解决windows系统的视频格式文件不显示缩略图内容问题
成功解决windows系统的视频格式文件不显示缩略图内容问题
|
Ubuntu 数据安全/隐私保护
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印
481 0
FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印