Go语言基础-io库的使用-文件操作

文件操作

        创建文件【一般用于写入文件】

file,err := os.Create(path) //不存在则会创建一个新的,存在则重新写入
	if err != nil{
		fmt.Println("文件打开失败",err)
		return 
	}

	defer file.Close()

        打开文件【一般用于读取文件】

file,err := os.Open(path)
	if err != nil{
		fmt.Println("文件打开失败",err)
		return 
	}

        删除文件

err :=os.Remove("b.txt")  //不存在也可以“删除”
	if err != nil{
		fmt.Println("删除失败",err)
		return
	}

        复制文件

src,err:=os.Open(path)
	if err != nil{
		fmt.Println("文件打开失败",err)
		return
	}
	defer src.Close()
	newPath :="b.txt"
	dst,err :=os.Create(newPath)
	if err != nil{
		fmt.Println("文件打开失败",err)
		return
	}
	defer dst.Close()

	i,err :=io.Copy(dst,src) // 返回的i表示复制长度
	if err != nil{
		fmt.Println("文件复制失败",err)
		return
	}
	fmt.Println(i)

文件读取/写入【带缓冲区】

        读取文件

content = make([]Type, 0) //初始化切片用于存储即将读取的数据

scanner := bufio.NewScanner(file)  //获取一个读取器,可以用来读取文件或流的内容。

// 逐行读取文件
for scanner.Scan() {
	line := scanner.Text() // 获取当前行的内容
    //数据处理


// 检查读取过程中是否发生错误
if err := scanner.Err(); err != nil {
	fmt.Println("读取文件错误:", err)
}

        写入文件

writer := bufio.NewWriter(file)  //创建一个写入器,可以用来写入文件或流的内容

_, err := writer.WriteString(content+ "\n") // 每行后添加换行符

if err != nil {
	fmt.Println("写入文件错误:", err)
	return
}


writer.Flush() // 刷新缓冲区以正式写入

心得:io包最核心的是实现了Reader、Writer、Closer、Seeker接口,file也实现了其相应的接口,故带缓冲区的写入/读取方法可传入file。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值