日常学习总结golang(day5)---文件操作

本文主要介绍了Golang中关于文件操作的内容,包括如何打开和关闭文件、读取文件(使用Read方法和bufio包)、写入文件(指定模式及权限),以及详细阐述了如何实现文件的copy操作。
摘要由CSDN通过智能技术生成
文件操作

文件是什么?
计算机中的文件是存储再外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。

1. 打开和关闭文件

os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。

func main() {
   
	//只读的方式打开当前目录下的demo.go
	file,err:=os.Open("./demo.go")
	if err !=nil{
   
		fmt.Println("open file failed!,err:",err)
		return
	}
	//延迟关闭
	//不能将defer放在err判断之前:
	//当err有值时,也就是说有错时,file就是nil,nil是不能调用Close()的,会出现panic的
	defer file.Close()
}

为了防止文件忘记关闭,我们通常使用defer延迟关闭语句。

2. 读取文件

(1).file.Read():
Read方法定义:func (f *File)Read(b []byte)(n int,err error)
它接收一个字节切片,返回读取的字节数和可能的具体错误。读到文件末尾时会返回0io.EOF.

func main() {
   
	//只读的方式打开当前目录下的demo.go
	file, err := os.Open("./demo.go")
	if err != nil {
   
		fmt.Println("open file failed!,err:", err)
		return
	}
	//延迟关闭
	defer file.Close()
	//使用Read方法读取数据
	var tmp = make([]byte, 128) //指定读的长度
	n, err := file.Read(tmp)
	if err == io.EOF {
   
	fmt.Println("文件读完了")
		return
	}
	if err != nil {
   
		fmt.Println("read file failed ,err:", err)
		return
	}
	//如果文件内容大于128个字节,这时只会读取128个字节,如果小于128,就会将所有的字节数输出。
	fmt.Printf("读取了%d个字节数据\n", n)//读取了128个字节数据
	fmt.Println(string(tmp[:n]))//从开始到第128个字节打印出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值