关于golang的io操作

本文详细介绍了Go语言中关于I/O操作的关键概念,包括Fileinfo获取文件信息、Reader和Writer进行读写、文件复制的不同实现方法(如io包的Read/Write和Copy,以及ioutil包的处理)、Seeker接口和bufio包的高效缓冲读写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
冲 冲 冲 !

个人主页:席万里的个人空间

关于golang的I/O操作

1、Fileinfo

查看文件的基本信息Fileinfo,使用Stat方法。

package main

import (
	"fmt"
	"os"
	"path"
	"path/filepath"
)

func main() {
   
	fileInfo, err := os.Stat("./demo.txt")
	if err != nil {
   
		fmt.Println("err :", err)
		return
	}
	//文件名
	fmt.Println(fileInfo.Name())
	//文件大小
	fmt.Println(fileInfo.Size())
	//是否是目录
	fmt.Println(fileInfo.IsDir()) //IsDirectory
	//修改时间
	fmt.Println(fileInfo.ModTime())
	//权限
	fmt.Println(fileInfo.Mode()) //-rw-r--r--
}

2、读写操作(Reader,Writer)

  • Reader

Read函数:func (f *File) Read(b []byte) (n int, err error)

package main

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

func main() {
   
	fileName := "demo.txt"
	file, err := os.Open(fileName)
	if err != nil {
   
		fmt.Println("err:", err)
		return
	}
	defer file.Close()

	bs := make([]byte, 4, 4)
	n := -1
	for {
   
		n, err = file.Read(bs)
		if n == 0 || err == io.EOF {
   
			fmt.Println("读取到了文件的末尾,结束读取操作。。")
			break
		}
		fmt.Println(string(bs[:n]))
	}
}

运行结果

在这里插入图片描述

  • Writer

func OpenFile(name string, flag int, perm FileMode) (*File, error)

package main

import (
	"fmt"
	"os"
)

func main() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大华Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值