判断文件是否存在 package main

import ( "fmt" "os" )

func main() { //获取文件的信息 stat, err := os.Stat("C:\Users\Regan\Desktop\test.txt") if err != nil{

fmt.Println("err=",err)
	//返回true表示文件不存在
	if os.IsNotExist(err){
		fmt.Println("文件不存在")
	}
}else {
	fmt.Println("文件存在!")
	fmt.Println(stat)
}

} 复制代码 stat, err := os.Stat("C:\Users\Regan\Desktop\test.txt")是获取文件的信息的API。 便捷写出 package main

import ( "fmt" "io/ioutil" )

想当年, 老夫拳打南山敬老院, 脚踢北海幼儿园, 我膨胀了吗?!

反引号保留原始格式

data:=`

想当年, 老夫拳打南山敬老院, 脚踢北海幼儿园, 我膨胀了吗?! `

复制代码 dataBytes := []byte(data)是将数据字符串转化为原始字节切片 err := ioutil.WriteFile("C:\Users\Regan\Desktop\test.txt", dataBytes, 0666写入字节数据到文件中,0666是权限。 简易的文件拷贝 package main

import ( "fmt" "io" "os" )

func main() { srcFile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\test.txt",os.O_RDONLY,0666) dstFile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\test1.txt",os.O_CREATE|os.O_WRONLY,0666) written, err := io.Copy(dstFile, srcFile) if err == nil{ fmt.Println("拷贝成功,字节数=",written) }else { fmt.Println("拷贝失败,err=",err) } }

复制代码 srcFile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\test.txt",os.O_RDONLY,0666) dstFile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\test1.txt",os.O_CREATE|os.O_WRONLY,0666) 复制代码

将源文件和目标文件打开。

written, err := io.Copy(dstFile, srcFile)这个是将源文件的数据copy到目标文件的语句。 升级版:缓冲式文件拷贝 当遇到大文件时第一种方法不在适用,需要用到本方法。 package main

import ( "bufio" "fmt" "io" "os" )

func main() { //打开源文件 srcfile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\rice.png", os.O_RDONLY, 0666) // 打开目标文件 dstfile, _ := os.OpenFile("C:\\Users\\11316\\Desktop\\test11.png", os.O_CREATE|os.O_WRONLY, 0666) defer func() { srcfile.Close() dstfile.Close() fmt.Println("文件已关闭") }()

reader := bufio.NewReader(srcfile)
writer := bufio.NewWriter(dstfile)
buffer := make([]byte, 1024)
for{
	_ , err := reader.Read(buffer)
	if err != nil{
		if err == io.EOF{
			fmt.Println("源文件读取完毕")
			break
		}else {
			fmt.Println("error")
			return
		}
	}else {
		_, err1 := writer.Write(buffer)
		if err1 != nil{
			fmt.Println(err1)
			return
		}
	}

}

}

复制代码

新建缓冲区,把内容先放在缓冲区。

reader := bufio.NewReader(srcfile) writer := bufio.NewWriter(dstfile) 复制代码 `

_ , err := reader.Read(buffer)读取 _ , err1 := writer.Write(buffer)写入